{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd \n",
    "import numpy as np\n",
    "\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.metrics import accuracy_score\n",
    "\n",
    "from matplotlib import pyplot\n",
    "import seaborn as sns\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "首先进行特征工程"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Pregnancies</th>\n",
       "      <th>Glucose</th>\n",
       "      <th>BloodPressure</th>\n",
       "      <th>SkinThickness</th>\n",
       "      <th>Insulin</th>\n",
       "      <th>BMI</th>\n",
       "      <th>DiabetesPedigreeFunction</th>\n",
       "      <th>Age</th>\n",
       "      <th>Outcome</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>6</td>\n",
       "      <td>148</td>\n",
       "      <td>72</td>\n",
       "      <td>35</td>\n",
       "      <td>0</td>\n",
       "      <td>33.6</td>\n",
       "      <td>0.627</td>\n",
       "      <td>50</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>85</td>\n",
       "      <td>66</td>\n",
       "      <td>29</td>\n",
       "      <td>0</td>\n",
       "      <td>26.6</td>\n",
       "      <td>0.351</td>\n",
       "      <td>31</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>8</td>\n",
       "      <td>183</td>\n",
       "      <td>64</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>23.3</td>\n",
       "      <td>0.672</td>\n",
       "      <td>32</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>89</td>\n",
       "      <td>66</td>\n",
       "      <td>23</td>\n",
       "      <td>94</td>\n",
       "      <td>28.1</td>\n",
       "      <td>0.167</td>\n",
       "      <td>21</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0</td>\n",
       "      <td>137</td>\n",
       "      <td>40</td>\n",
       "      <td>35</td>\n",
       "      <td>168</td>\n",
       "      <td>43.1</td>\n",
       "      <td>2.288</td>\n",
       "      <td>33</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Pregnancies  Glucose  BloodPressure  SkinThickness  Insulin   BMI  \\\n",
       "0            6      148             72             35        0  33.6   \n",
       "1            1       85             66             29        0  26.6   \n",
       "2            8      183             64              0        0  23.3   \n",
       "3            1       89             66             23       94  28.1   \n",
       "4            0      137             40             35      168  43.1   \n",
       "\n",
       "   DiabetesPedigreeFunction  Age  Outcome  \n",
       "0                     0.627   50        1  \n",
       "1                     0.351   31        0  \n",
       "2                     0.672   32        1  \n",
       "3                     0.167   21        0  \n",
       "4                     2.288   33        1  "
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train = pd.read_csv(\"diabetes.csv\")\n",
    "train.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 768 entries, 0 to 767\n",
      "Data columns (total 9 columns):\n",
      "Pregnancies                 768 non-null int64\n",
      "Glucose                     768 non-null int64\n",
      "BloodPressure               768 non-null int64\n",
      "SkinThickness               768 non-null int64\n",
      "Insulin                     768 non-null int64\n",
      "BMI                         768 non-null float64\n",
      "DiabetesPedigreeFunction    768 non-null float64\n",
      "Age                         768 non-null int64\n",
      "Outcome                     768 non-null int64\n",
      "dtypes: float64(2), int64(7)\n",
      "memory usage: 54.1 KB\n"
     ]
    }
   ],
   "source": [
    "train.info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* Pregnancies: 怀孕次数\n",
    "* Glucose: 口服葡萄糖耐受试验中，2 小时的血浆葡萄糖浓度。 \n",
    "* BloodPressure: 舒张压(mm Hg)\n",
    "* SkinThickness: 三头肌皮肤褶层厚度(mm)\n",
    "* Insulin:2 小时血清胰岛素含量(μU/ ml)\n",
    "* BMI: 体重指数(体重，kg /(身高，m)^ 2)\n",
    "* DiabetesPedigreeFunction: 糖尿病家族史\n",
    "* Age: 年龄(岁)\n",
    "* Outcome: 输出变了/类别标签(0 或 1，出现糖尿病为 1, 否则为 0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Pregnancies</th>\n",
       "      <th>Glucose</th>\n",
       "      <th>BloodPressure</th>\n",
       "      <th>SkinThickness</th>\n",
       "      <th>Insulin</th>\n",
       "      <th>BMI</th>\n",
       "      <th>DiabetesPedigreeFunction</th>\n",
       "      <th>Age</th>\n",
       "      <th>Outcome</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>3.845052</td>\n",
       "      <td>120.894531</td>\n",
       "      <td>69.105469</td>\n",
       "      <td>20.536458</td>\n",
       "      <td>79.799479</td>\n",
       "      <td>31.992578</td>\n",
       "      <td>0.471876</td>\n",
       "      <td>33.240885</td>\n",
       "      <td>0.348958</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>3.369578</td>\n",
       "      <td>31.972618</td>\n",
       "      <td>19.355807</td>\n",
       "      <td>15.952218</td>\n",
       "      <td>115.244002</td>\n",
       "      <td>7.884160</td>\n",
       "      <td>0.331329</td>\n",
       "      <td>11.760232</td>\n",
       "      <td>0.476951</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.078000</td>\n",
       "      <td>21.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>99.000000</td>\n",
       "      <td>62.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>27.300000</td>\n",
       "      <td>0.243750</td>\n",
       "      <td>24.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>3.000000</td>\n",
       "      <td>117.000000</td>\n",
       "      <td>72.000000</td>\n",
       "      <td>23.000000</td>\n",
       "      <td>30.500000</td>\n",
       "      <td>32.000000</td>\n",
       "      <td>0.372500</td>\n",
       "      <td>29.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>6.000000</td>\n",
       "      <td>140.250000</td>\n",
       "      <td>80.000000</td>\n",
       "      <td>32.000000</td>\n",
       "      <td>127.250000</td>\n",
       "      <td>36.600000</td>\n",
       "      <td>0.626250</td>\n",
       "      <td>41.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>17.000000</td>\n",
       "      <td>199.000000</td>\n",
       "      <td>122.000000</td>\n",
       "      <td>99.000000</td>\n",
       "      <td>846.000000</td>\n",
       "      <td>67.100000</td>\n",
       "      <td>2.420000</td>\n",
       "      <td>81.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Pregnancies     Glucose  BloodPressure  SkinThickness     Insulin  \\\n",
       "count   768.000000  768.000000     768.000000     768.000000  768.000000   \n",
       "mean      3.845052  120.894531      69.105469      20.536458   79.799479   \n",
       "std       3.369578   31.972618      19.355807      15.952218  115.244002   \n",
       "min       0.000000    0.000000       0.000000       0.000000    0.000000   \n",
       "25%       1.000000   99.000000      62.000000       0.000000    0.000000   \n",
       "50%       3.000000  117.000000      72.000000      23.000000   30.500000   \n",
       "75%       6.000000  140.250000      80.000000      32.000000  127.250000   \n",
       "max      17.000000  199.000000     122.000000      99.000000  846.000000   \n",
       "\n",
       "              BMI  DiabetesPedigreeFunction         Age     Outcome  \n",
       "count  768.000000                768.000000  768.000000  768.000000  \n",
       "mean    31.992578                  0.471876   33.240885    0.348958  \n",
       "std      7.884160                  0.331329   11.760232    0.476951  \n",
       "min      0.000000                  0.078000   21.000000    0.000000  \n",
       "25%     27.300000                  0.243750   24.000000    0.000000  \n",
       "50%     32.000000                  0.372500   29.000000    0.000000  \n",
       "75%     36.600000                  0.626250   41.000000    1.000000  \n",
       "max     67.100000                  2.420000   81.000000    1.000000  "
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Glucose / BloodPressure / SkinThickness / Insulin 是否存在异常值？"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x112b68410>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.countplot(train.Outcome);\n",
    "pyplot.xlabel('Outcome');\n",
    "pyplot.ylabel('Number of occurrences');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "类型相对平均"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11292e5d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = pyplot.figure()\n",
    "sns.distplot(train.Glucose.values, bins=30, kde=True)\n",
    "pyplot.xlabel('Median value of owner-occupied homes', fontsize=12)\n",
    "pyplot.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "的确0值为异常值，需要去除"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Int64Index: 763 entries, 0 to 767\n",
      "Data columns (total 9 columns):\n",
      "Pregnancies                 763 non-null int64\n",
      "Glucose                     763 non-null int64\n",
      "BloodPressure               763 non-null int64\n",
      "SkinThickness               763 non-null int64\n",
      "Insulin                     763 non-null int64\n",
      "BMI                         763 non-null float64\n",
      "DiabetesPedigreeFunction    763 non-null float64\n",
      "Age                         763 non-null int64\n",
      "Outcome                     763 non-null int64\n",
      "dtypes: float64(2), int64(7)\n",
      "memory usage: 59.6 KB\n"
     ]
    }
   ],
   "source": [
    "train = train[train.Glucose != 0]\n",
    "train.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x112b74f90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = pyplot.figure()\n",
    "sns.distplot(train.BloodPressure.values, bins=30, kde=True)\n",
    "pyplot.xlabel('Median value of owner-occupied homes', fontsize=12)\n",
    "pyplot.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Int64Index: 728 entries, 0 to 767\n",
      "Data columns (total 9 columns):\n",
      "Pregnancies                 728 non-null int64\n",
      "Glucose                     728 non-null int64\n",
      "BloodPressure               728 non-null int64\n",
      "SkinThickness               728 non-null int64\n",
      "Insulin                     728 non-null int64\n",
      "BMI                         728 non-null float64\n",
      "DiabetesPedigreeFunction    728 non-null float64\n",
      "Age                         728 non-null int64\n",
      "Outcome                     728 non-null int64\n",
      "dtypes: float64(2), int64(7)\n",
      "memory usage: 56.9 KB\n"
     ]
    }
   ],
   "source": [
    "train = train[train.BloodPressure != 0]\n",
    "train.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x112acf810>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = pyplot.figure()\n",
    "sns.distplot(train.SkinThickness.values, bins=30, kde=True)\n",
    "pyplot.xlabel('Median value of owner-occupied homes', fontsize=12)\n",
    "pyplot.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "由于0值相对较多，不能直接去除，需要使用均值代替"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.preprocessing import Imputer\n",
    "imp = Imputer(missing_values = 0, strategy = 'mean')\n",
    "train[[\"SkinThickness\"]] = imp.fit_transform(train[[\"SkinThickness\"]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAENCAYAAADjW7WQAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzt3Xt8XHWd//HXJ5Nkcm+bNm3pvYVSKIoIoUW8gLIIKFB3BQW8wMouqy6uu67XXRdd1F31529xV/2pCCggchFXrVhEBRFQ6IVbSyml9zZtadOk6SX3ZD6/P86ZMoRJM0kmmcyc9/PxCMw553vmfE/O9D3ffM8532PujoiIRENRrisgIiKjR6EvIhIhCn0RkQhR6IuIRIhCX0QkQhT6IiIRklHom9n5ZrbezDaa2WfTLH+LmT1lZj1mdknK/FPM7HEzW2tmq83svdmsvIiIDI4NdJ2+mcWAF4FzgQZgJXC5uz+fUmYOUAN8Eljq7veG848H3N03mNk04EngRHdvyf6uiIjIQIozKLMI2OjumwHM7C5gCXAk9N19a7gskbqiu7+Y8nqXme0F6gCFvohIDmQS+tOBHSnTDcDiwW7IzBYBpcCmo5WbNGmSz5kzZ7BvLyISaU8++eQ+d68bqFwmoW9p5g1q7AYzOwa4HbjS3RNpll8DXAMwa9YsVq1aNZi3FxGJPDPblkm5TE7kNgAzU6ZnALsGUZEa4NfA5939iXRl3P1Gd6939/q6ugG/qEREZIgyCf2VwHwzm2tmpcBlwNJM3jws/3PgNnf/6dCrKSIi2TBg6Lt7D3At8ACwDrjH3dea2fVmdjGAmZ1uZg3ApcD3zWxtuPp7gLcAV5nZM+HPKSOyJyIiMqABL9kcbfX19a4+fRGRwTGzJ929fqByuiNXRCRCFPoiIhGi0BcRiRCFvohIhCj0RUQiJJM7ciUifrJ8+4Blrlg8axRqIiIjRS19EZEIUeiLiESIQl9EJEIU+iIiEaLQFxGJEIW+iEiEKPRFRCJEoS8iEiEKfRGRCFHoi4hEiEJfRCRCFPoiIhGi0BcRiRCFvohIhCj0RUQiRKEvIhIhCn0RkQhR6IuIRIhCX0QkQhT6IiIRotAXEYkQhb6ISIRkFPpmdr6ZrTezjWb22TTL32JmT5lZj5ld0mfZlWa2Ify5MlsVFxGRwRsw9M0sBnwHuABYCFxuZgv7FNsOXAX8pM+6tcAXgMXAIuALZjZh+NUWEZGhyKSlvwjY6O6b3b0LuAtYklrA3be6+2og0Wfd84DfuXuzu+8Hfgecn4V6i4jIEGQS+tOBHSnTDeG8TGS0rpldY2arzGxVY2Njhm8tIiKDlUnoW5p5nuH7Z7Suu9/o7vXuXl9XV5fhW4uIyGBlEvoNwMyU6RnArgzffzjriohIlmUS+iuB+WY218xKgcuApRm+/wPA281sQngC9+3hPBERyYEBQ9/de4BrCcJ6HXCPu681s+vN7GIAMzvdzBqAS4Hvm9nacN1m4EsEXxwrgevDeSIikgPFmRRy92XAsj7zrkt5vZKg6ybdurcAtwyjjiIikiW6I1dEJEIU+iIiEaLQFxGJEIW+iEiEKPRFRCJEoS8iEiEKfRGRCFHoi4hEiEJfXmH5libuXLE919UQkRGS0R25Eh1Pb29hR3MbXT0JSovVJhApNPpXLUd09ybY2dKOA42HOnNdHREZAQp9OWJXSzu9ieBxB3sOduS4NiIyEhT6csT25jYAikyhL1Ko1KcvR2xraqO2spR4cRF7Din0RQqRQl8AcHd2NLdx3OQqHNiyrzXXVRKREaDuHQGgYX87hzp7mDWxgqk1ZRxo76a9qzfX1RKRLFPoCwBPbtsPwKzaCqbUxAHYqy4ekYKj0BcgCP14cRFTasqYUlMGwEs6mStScBT6AgShP3NCBUVmjCsvCU7mHtS1+iKFRqEv9PQmWL/nENMnlANgZkypKdNlmyIFSKEv7G/rpjfh1JSXHJk3pSbOnoMduHsOayYi2abQF5pbuwCoLI0dmTelpoy2rl4Od/bkqloiMgIU+vJy6Mdfvm0jeTJX/foihUWhL2lDf1zY1XOoozsndRKRkaHQF5pbg9Z8avdOZWnwBdCqG7RECopCX2gKW/oVpS+39OMlRRQZtKlPX6SgKPSF5tYuxpWXECuyI/OKzKgoLVZLX6TAZBT6Zna+ma03s41m9tk0y+Nmdne4fLmZzQnnl5jZrWa2xszWmdnnslt9yYam1i4mVpa+an5FaYy2LrX0RQrJgKFvZjHgO8AFwELgcjNb2KfY1cB+dz8OuAH4Wjj/UiDu7q8FTgP+LvmFIGNH8+EuatOEfmW8mFZ174gUlExa+ouAje6+2d27gLuAJX3KLAFuDV/fC5xjZgY4UGlmxUA50AUczErNJWuaW9OHfkVpTN07IgUmk9CfDuxImW4I56Ut4+49wAFgIsEXQCuwG9gOfMPdm/tuwMyuMbNVZraqsbFx0Dshw9PU2sXEqvQtfZ3IFSksmYS+pZnX9978/sosAnqBacBc4J/NbN6rCrrf6O717l5fV1eXQZUkW9yd/W39dO+Uxmjr6iWhoRhECkYmod8AzEyZngHs6q9M2JUzDmgGrgB+4+7d7r4X+BNQP9xKS/YcbO+hN+FMqEjXvVOMAx3q4hEpGJmE/kpgvpnNNbNS4DJgaZ8yS4Erw9eXAA95MFLXduBtFqgEzgBeyE7VJRuawhuz0nfvBDdrqV9fpHAMGPphH/21wAPAOuAed19rZteb2cVhsZuBiWa2EfgEkLys8ztAFfAcwZfHD919dZb3QYYhOQRDbWX8VcuSd+Xqsk2RwpHRg9HdfRmwrM+861JedxBcntl3vcPp5svYkbwbd2JlKTv3t79iWUU4Fk9rp1r6IoVCd+RG3Mst/fQncgFa1dIXKRgK/Yg7Wugnx+LRZZsihUOhH3FNh7uoLI1RVhJ71bLS4iJKYqYTuSIFRKEfcc2tndSmuXInqbK0WCdyRQqIQj/imtu6qU1zjX5SRTymE7kiBUShH3HNrZ1p+/OTKkuLdSJXpIAo9CMuGGHz1dfoJ1XGi2lTn75IwVDoR5i79zvYWlJFaUzDK4sUEIV+hLV19dLZkzhq905FaTGdPQl6ehOjWDMRGSkK/Qg72jX6Scnxd9TFI1IYFPoRljoEQ3+S4+/oZK5IYVDoR1hzOMLmhKN17yRH2tRlmyIFQaEfYc2t3UBmLX3doCVSGBT6EdbSFnTvHK2lX5kcaVN9+iIFQaEfYS1t3cSKjOp4/yNsl4dj8mjQNZHCoNCPsJb2LsaVl2CW7hHHgViRUV4S04lckQKh0I+w/W3djC8vGbBccIOWundECoFCP8IOtHUzvmLg0A+GYlBLX6QQKPQjrKW9i/FHGWEzqaI0ppuzRAqEQj/CWgbRvaPQFykMCv0IO9DWzbgMuncq9CAVkYKh0I+o7t4Ehzp7GF+eWfdOd6/TrUHXRPKeQj+iDrQHd+NOqBy4pV9eqkHXRAqFQj+iWtqC0B+XUZ++hmIQKRQK/Yg60B4MwZDp1Tuglr5IIVDoR1SypZ/p1Tug0BcpBAr9iNqfDP0Mr94Bde+IFIKMQt/Mzjez9Wa20cw+m2Z53MzuDpcvN7M5KctONrPHzWytma0xs7LsVV+GKjnCZqZX74Ba+iKFYMDQN7MY8B3gAmAhcLmZLexT7Gpgv7sfB9wAfC1ctxj4MfBhdz8JOBvozlrtZcgOtHdTZFBd1v8Im0klsSJKY0UaaVOkAGTS0l8EbHT3ze7eBdwFLOlTZglwa/j6XuAcC4ZufDuw2t2fBXD3JndXc3EMaGnrZlx5CUVF/Y+wmUp35YoUhkxCfzqwI2W6IZyXtoy79wAHgInA8YCb2QNm9pSZfTrdBszsGjNbZWarGhsbB7sPMgQt7d0ZXbmTpNAXKQyZhH66pqBnWKYYeBPwvvD/f2lm57yqoPuN7l7v7vV1dXUZVEmGq6WtK6Nr9JM0FINIYcgk9BuAmSnTM4Bd/ZUJ+/HHAc3h/D+6+z53bwOWAacOt9IyfC0ZDqucVK6WvkhByCT0VwLzzWyumZUClwFL+5RZClwZvr4EeMjdHXgAONnMKsIvg7OA57NTdRmOlvYuJqh7RyRyBrx0w917zOxaggCPAbe4+1ozux5Y5e5LgZuB281sI0EL/7Jw3f1m9l8EXxwOLHP3X4/QvsggJE/kZqqitJiO7l56E04sw5O/IjL2DHy9HuDuywi6ZlLnXZfyugO4tJ91f0xw2aaMET29CQ519Ayqe6eiNIYDB9u7mVCZ+V8IIjK26I7cCEqOsJnJEAxJyRu09oc3dYlIflLoR1BLMvQH1acf/FGYHL5BRPKTQj+CWgYx7k7SkZZ+q1r6IvlMoR9BgxlWOUndOyKFQaEfQYMZVjkp2b3Tou4dkbym0I+goXTvlJUUUWRq6YvkO4V+BLW0dWEG1WWZh76ZUV5arBO5InlOoR9BLe3d1JSVDPomq4rS2JFx+EUkPyn0I6ilrZsJg+jaSaoojal7RyTPKfQjqKW9m3GDuHInqaK0WCdyRfKcQj+CWtq6BnXlTpJa+iL5T6EfQfsOdTKpKj7o9YLQ7yYYQFVE8pFCP2LcnX2Hu5hUPbTuna6eBO3dGmJZJF8p9CPmYHsPXb0J6obQ0q8M78ptOqwuHpF8pdCPmMbDnQDUVQ8+9JPX9e891JHVOonI6FHoR8y+MPSH0qdfXRYMxdB4qDOrdRKR0aPQj5hkYA8n9Pcq9EXylkI/Yl5u6Q/+RG5lvJgig70HFfoi+UqhHzH7DncSK7JBPRQ9qciMSVVx9emL5DGFfsTsO9TFxMpSiob4cPPJNXF174jkMYV+xDQeHtqNWUmTq8vUvSOSxxT6EbPvcOeQLtdMmlytlr5IPlPoR8xQh2BImlwdp6m1k57eRBZrJSKjRaEfIcMZgiGprqYMd2jSA9JF8pJCP0KGMwRD0uSwa0j9+iL5SaEfIcMZgiHpSOjrsk2RvKTQj5DhDMGQNLmmDNBQDCL5KqPQN7PzzWy9mW00s8+mWR43s7vD5cvNbE6f5bPM7LCZfTI71ZahGM4QDEnJO3l1BY9Ifhow9M0sBnwHuABYCFxuZgv7FLsa2O/uxwE3AF/rs/wG4P7hV1eGY18WunfixTHGV5Soe0ckT2XS0l8EbHT3ze7eBdwFLOlTZglwa/j6XuAcMzMAM3sXsBlYm50qy1Alh2AYyqMSU02ujutErkieyiT0pwM7UqYbwnlpy7h7D3AAmGhmlcBngH8fflVluIY7BEPS5Ooyde+I5KlMQj9dQvR9SGp/Zf4duMHdDx91A2bXmNkqM1vV2NiYQZVkKBqHeTdu0uTquE7kiuSp4gzKNAAzU6ZnALv6KdNgZsXAOKAZWAxcYmZfB8YDCTPrcPdvp67s7jcCNwLU19frqdsjZN8wx91JqqsJQt/dCXvxRCRPZBL6K4H5ZjYX2AlcBlzRp8xS4ErgceAS4CF3d+DNyQJm9kXgcN/Al9Gz71An8ydXD/t9JleX0dWboKWtmwmVQ7+7V0RG34DdO2Ef/bXAA8A64B53X2tm15vZxWGxmwn68DcCnwBedVmn5FZyCIZsde+ALtsUyUeZtPRx92XAsj7zrkt53QFcOsB7fHEI9ZMsSQ7BMJQnZvWVelfugqnD/8tBREaP7siNiGwMwZCku3JF8pdCPyK2N7cCMGNC+bDfK9nS36Nr9UXyjkI/IjY3BqE/b1LVsN+rMl7MxMpStjW1Dvu9RGR0KfQjYlNjKxMqSrJ2tc2xdVVsajzq7RciMgYp9CNic+Nh5tUNv5WfdOzkSjY1qqUvkm8U+hGxeV8r8yZVZu39jq2rorm1i/16gpZIXlHoR8Chjm4aD3VmtaU/ry74Atm8T108IvlEoR8BR07i1mW3pQ+waa+6eETyiUI/ApKt8WOzGPozJlRQGitik1r6InlFoR8Bm/a2EisyZtVmL/RjRcbcSZVq6YvkGYV+BGzed5iZE8opLc7u4T52ciWbddmmSF5R6EfA5sbWI33w2TRvUhXbmtvo6klk/b1FZGQo9AtcIuFs2dea1ZO4ScdOrqQ34Wxvbsv6e4vIyFDoF7idLe109iSyerlm0pEreNTFI5I3FPoFbvO+5Jg72W/pz1Poi+QdhX6BS55oHYmWflW8mCk18SP3AYjI2KfQL3Drdh+kpqw4Kw9PSUcDr4nkF4V+AetNOA+u28tZCyaP2APMF0ytZt3ug3T29I7I+4tIdin0C9iKLc00tXZxwWumjtg23nTcJDq6E6zaun/EtiEi2ZPRM3IlP93/3G7KSoo4e0EdP1m+fUS2cca8iZTEjEdebOSNx00akW2ISPYo9AtUIuH85rmXOPv4yVSUZu8wp/vymDmhgqXP7mL2xOAKoSsWz8ra9kQku9S9U6Ce3rGfvYc6ueC1I9e1kzR/chW7D3RwqKN7xLclIsOj0C9Q9695idJYEW87YfKIb2v+lGoANuzVVTwiY51CvwC1dfXw6zW7efP8SVSXlYz49qaOK6MyXsxGhb7ImKfQLzCJhPOPdz3DnoMdXP2muaOyzSIz5k+uYsOeQyTcR2WbIjI0OpGbI5lcTTOUE6Jff2A9v31+D1+4aCFnjuLVNPMnV/HMjhZ27m8ftW2KyOCppV8gmlu7+Nefr+F7f9zE+8+YxVVnzhnV7Z8wtYaykiIefrFxVLcrIoOTUUvfzM4H/huIATe5+1f7LI8DtwGnAU3Ae919q5mdC3wVKAW6gE+5+0NZrH/k3f74NpZvaeL36/bQ1ZPgzGMnsmBKDXeu2DGq9SgvjfHm+XX87vk9PLltP6fNnjCq2xeRzAzY0jezGPAd4AJgIXC5mS3sU+xqYL+7HwfcAHwtnL8PuMjdXwtcCdyerYoLPLqhkW89tIH7Vu9mxvgKPva2+Vx48jRiRSMz5MJAzjx2IlXxYr7+mxdw9e2LjEmZtPQXARvdfTOAmd0FLAGeTymzBPhi+Ppe4NtmZu7+dEqZtUCZmcXdvXPYNS8w3b0JHtu4jx3Nbew52EF5SYz27l7edco0JlbFX1F2W1MrX/71On73/B5qK0t5/+LZnHhM9YiNr5OpeHGMty6o41erd/PIhn2cdXxdTusjIq+WSehPB1L7ChqAxf2VcfceMzsATCRo6Se9G3hagf9qXT0J7li+jQ17DzO5Os7M2gqaDnfxpfue5z+WraN+9gTedsJkunoSrN55gD+ub6Q4Znz6/AVUlRZTHBs7p2ZOn1vLsw0H+MTdz3DLVafzupnjc10lEUmRSeinaz72/dv9qGXM7CSCLp+3p92A2TXANQCzZkXrFv7Onl5ue3wbW/e18u5TZ7yiL/y02RNY+uxOHly3l/+8/wUgeBjKpfUz+Idz5jOlpmzExtQZquKiIi45dQY//PMWLvnen7li0SwWTK15VbkrFs+iuzfB2l0HeWrbfpxg3048poap48pGv+IiEZFJ6DcAM1OmZwC7+inTYGbFwDigGcDMZgA/Bz7o7pvSbcDdbwRuBKivr49MZ7C789NVDWxrauXS+pmc0qdVvGBqNZ+aegKfOu8E9hzsoKI0Nio3Ww3XpOo4Hz7rWG7981ZufXwbU2vKeM30GmrKSkg4tLR18ctndvJsQwsd3a98qHpxkfGZ80/gb948N+fdVSKFKJPQXwnMN7O5wE7gMuCKPmWWEpyofRy4BHjI3d3MxgO/Bj7n7n/KXrULw4qtzTy/+yAXvGbqqwK/ryk1+dX6rS4r4W/fMo9VW/fz3M4D/H7d3iPLigxeM30cly+axWmzJ1A/u5bimLF1Xys3PbqFryxbx/ItTfzf95zCuPKx/yUnkk8GDP2wj/5a4AGCSzZvcfe1ZnY9sMrdlwI3A7eb2UaCFv5l4erXAscB/2Zm/xbOe7u77yXi9hzsYNma3cyfXFWwQxLHi2O88bhJvPG4SbR29tDdm6DIjLKSGKXFwXmIg+09PPTCyx+HN8+fRHHMuH/NS3z8rqe55crTKcrR1UgihSij6/TdfRmwrM+861JedwCXplnvy8CXh1nHgtPR3cs9q3ZQEivi3afNoCgC3RiV8cxu/jYzzjx2EkVmLH12F99/ZDMfOfvYEa6dSHRoGIYc+Ppv1rP7QAcfPGM2NXnQR58Li+fW0ptwvvHb9Zw+ZwL1c2pzXSWRgqDQH2UPr9/LLX/awhnzJnLCMa++qiXVWLsyZzSZGf/57teyZucBPn7XM/zuE2/J6sNgRKJq7FzgHQF7D3XwyZ+uZsGU6hF9bm2hqCkr4f9ccjI7W9r59kMbc10dkYKg0B8lza1dfOCmFbR29vDfl59CyRi6oWosWzxvIn/1+un84NHNGq9fJAuUPKPgQHs3H7h5OVuaWrnpynpOSHOzkvTvc+84kbKSGF9Y+pzG9BEZJoX+CNvZ0s7lNz7Bi3sO8f0PnFawl2eOpLrqOJ86bwF/2tjEfat357o6InlNZ8ZG0PLNTXz0jqfo6klw4wfreeuCkX9ebSFJPZFdZMa08WX8y8/X0Hiok7KSGDC0B82IRJla+iPA3bn9iW2876bljKso4RfXvlGBP0xFZix53XQOd/Tw4Lo9ua6OSN5SSz/LunoSfGHpc9y5YgdvO2Ey37zsFF2LnyUzayuon1PL45ubOG12rQZmExkCtfSzqLWzh7/+0QruXLGDv3/rsfzgg/UK/Cw7b+EUykpi3PvkDrp7EwOvICKvoJZ+lrS0dXHVD1eyZucBLjl1BtPHV3D3ytF9ZGEUVMSLefepM7j9iW3ct3o3V47ys4BF8p1Cf5DS3SXb3tXLDx7dTOPhTi4/fRYLp+mSzJF04jE1nHV8HX98sZGfPdnAu0+bkesqieQNde8MU1dPglsf30rj4U4++IbZCvxR8hcnTmHepEr+5edruH+NLuMUyZRCfxh6E86dK7azo7mN99bPZP7k6lxXKTJiRcbli2bxmunj+MgdT/G9P27SjVsiGVDoD8N9q3exfs8hLj5lGq+ZPi7X1Ymcyngxd/zNYi563TS+ev8LfODmFTy380CuqyUypqlPf4hWbGlm+ZZm3jx/EovnTsx1dSLrf5/ayeK5tbg7D72wlwu/9RivnT6OsxfUccy48iPldBOXSEChPwTbmlr51bO7mD+5ivNO0miZuVYUPnjl1FkTeGRDI49vamLNzgMsmFLNeSdN1fX8IinUvTNILW1d3LF8O+MrSrjs9FmReOpVvigrifH2hVP59HkncO7CKWxvbuNbD23gl8/sZH9rV66rJzImKPQHoaO7lzuWb6e7N8H7z5hNeWks11WSNMpLY7x1wWT++e3Hs3jeRFZubebcGx7R8A0iKPQz5u589mer2dXSznvqZzKlRl0GY11FaTEXv24aHz37OCZVlXL1rav49L3PcqijO9dVE8kZhX6G/ufBjfzimV2cc+IUThzgMYcytkwbX84vr30jHz37WO59soHzv/kof964L9fVEskJhX4G7n2ygRt+/yJ/dep03rqgLtfVkSGIF8f49PkncO9HzqS0uIgrblrOF5eupb2rN9dVExlVNtZuaKmvr/dVq1bluhpH/GH9Xv721lUsnlfLD69axL1PNuS6SjJMXT0JHnj+JR7f1MTEylIuOW0GsydW6rJOyWtm9qS71w9UTi39o/jVs7u45rZVHD+lmu++/zRKi/XrKgSlxUVcdPI0rn7TXHoTzvcf2cxdK7fTsL8t11UTGXFq6adIDqbm7jy+uYlfr97N7IkVfOCMObpSp0B1dvfyyIZGHt2wj6Ii47LTZ/J3Zx3L9PHlA68sMoZk2tLXzVl9HGjv5udPN/DinsOcOLWayxbNoiSmFn6hipfEOHfhVE6fU8v25jbuXLGdnyzfzoUnH8MVi2dz+pwJmO7FkAKi0A8d6ujm4fV7eWRDI70J56KTj2HxvIm6+SoixleUMr6ilFm1FTy2cR+/WfsSv3hmF5OqSjlp2jgWHlPD9AnlvP+M2bmuqsiwZNS9Y2bnA/8NxICb3P2rfZbHgduA04Am4L3uvjVc9jngaqAX+Ad3f+Bo2xrt7p2dLe3cvWI7tz2xjZa2bhZMqebCk49hYlV81OogY09XT4I1O1t4ekcLW/e1knCIFxexaG4tp8wcz4Kp1SyYUs2cSZX6S1DGhKx175hZDPgOcC7QAKw0s6Xu/nxKsauB/e5+nJldBnwNeK+ZLQQuA04CpgG/N7Pj3T2n18ntO9zJg+v28Os1L/HohkYAzjlhMsdPqWbGhIpcVk3GiNLiIk6bXctps2tp6+rhxT2H2drUyoY9h3lswz6STaVYkVFXFWdKTZypNWXUVZfx/jfMYuaECirj+kNaxp5MPpWLgI3uvhnAzO4ClgCpob8E+GL4+l7g2xZ0hC4B7nL3TmCLmW0M3+/x7FT/1RIJp7MnQUd3L+3dvbR29rDrQAcN+9tYu+sgT29vYf1LB0k4TB9fzsfeehzvOX0mMyZUpH0qlkhFaTGnzBzPKTPHA9Ddm6DxUCd7DnaEP51sbWrj2YZgWOcfL98GwMTKUmbUVjC5Ok5FaYzykuBiAHdwPPz/y9McmXYSKa8hGFeoKl5MTVkxVWXFVJeVUBUvpros+KmKlwT/LyumqrSYoiJ1S2aLu9PRnaCtq4e2rpdz5VBH8HOwo5tDHd20dvbSm3AS7pSVxKiMF1MdL6YyHh6XeIyqeAmV8RjV8RLKS2PEiowiY1TPG2US+tOB1Ie9NgCL+yvj7j1mdgCYGM5/os+604dc26NoPNTJG7/2EF09/T8su7os+Md73jnzOXfhFBYeU6OTdDJoJbEipo0vZ1qfK3w6untpPNTJidNq2NHcRsP+NrY3t7GjuY327t4jN4KZBY/YTH72LPyPwSvnhWUBunudzp5eOrsTZHK9XXEY+sn1jSMvXvXeyWX9/VNI1wPs/dQifdl0BfvZVpoFGb8npH2QTrqyI3XRohH89deTGNwGYkVGrMh4/czx3P13bxiZyoUyCf10H4W+e9RfmUzWxcyuAa4JJw+b2foM6jUJGPS99M8BPx7sSrk3pH3NY9rfwhWlfYVB7u8G4J4PD3lbGV1lkEnoNwAzU6ZnALv6KdNgZsXAOKA5w3Vx9xuBGzOpcJKZrcrkpEUhiNK+gvbum9VAAAAMi0lEQVS3kEVpX2Fs7m8mlx2sBOab2VwzKyU4Mbu0T5mlwJXh60uAhzz4O2spcJmZxc1sLjAfWJGdqouIyGAN2NIP++ivBR4guGTzFndfa2bXA6vcfSlwM3B7eKK2meCLgbDcPQQnfXuAv8/1lTsiIlGW0TVl7r4MWNZn3nUprzuAS/tZ9yvAV4ZRx/4Mqjsoz0VpX0H7W8iitK8wBvd3zI29IyIiI0e3EoqIREjehb6ZnW9m681so5l9Ntf1yTYzm2lmfzCzdWa21sw+Hs6vNbPfmdmG8P8Tcl3XbDGzmJk9bWb3hdNzzWx5uK93hxcQFAQzG29m95rZC+ExfkOBH9t/Cj/Hz5nZnWZWVkjH18xuMbO9ZvZcyry0x9MC/xNm12ozOzUXdc6r0E8ZEuICYCFweTjUQyHpAf7Z3U8EzgD+PtzHzwIPuvt84MFwulB8HFiXMv014IZwX/cTDPNRKP4b+I27nwC8jmC/C/LYmtl04B+Aend/DcGFIMlhWgrl+P4IOL/PvP6O5wUEVzDOJ7gv6bujVMdXyKvQJ2VICHfvApJDQhQMd9/t7k+Frw8RhMJ0gv28NSx2K/Cu3NQwu8xsBvBO4KZw2oC3EQznAYW1rzXAWwiudsPdu9y9hQI9tqFioDy8f6cC2E0BHV93f4TgisVU/R3PJcBtHngCGG9mx4xOTV+Wb6GfbkiIERnWYSwwsznA64HlwBR33w3BFwMwOXc1y6pvAp8GkuNnTARa3L0nnC6kYzwPaAR+GHZn3WRmlRTosXX3ncA3gO0EYX8AeJLCPb5J/R3PMZFf+Rb6GQ3rUAjMrAr4GfCP7n4w1/UZCWZ2IbDX3Z9MnZ2maKEc42LgVOC77v56oJUC6cpJJ+zLXgLMJRhlt5Kgi6OvQjm+AxkTn+18C/2MhnXId2ZWQhD4d7j7/4az9yT/FAz/vzdX9cuiNwIXm9lWgq66txG0/MeH3QFQWMe4AWhw9+Xh9L0EXwKFeGwB/gLY4u6N7t4N/C9wJoV7fJP6O55jIr/yLfQzGRIir4V92jcD69z9v1IWpQ51cSXwy9GuW7a5++fcfYa7zyE4lg+5+/uAPxAM5wEFsq8A7v4SsMPMFoSzziG4W73gjm1oO3CGmVWEn+vk/hbk8U3R3/FcCnwwvIrnDOBAshtoVLl7Xv0A7wBeBDYB/5rr+ozA/r2J4E++1cAz4c87CPq6HyQYiO9BoDbXdc3yfp8N3Be+nkcwRtNG4KdAPNf1y+J+ngKsCo/vL4AJhXxsgX8HXiAY4PZ2IF5Ixxe4k+B8RTdBS/7q/o4nQffOd8LsWkNwVdOo11l35IqIREi+de+IiMgwKPRFRCJEoS8iEiEKfRGRCFHoi4hEiEI/j5iZm9lx4evvmdm/5bpOqczsR2b25Rxs9y/NbIeZHTaz14/29gtR+LucN8R1j3xO0yx72Mz+Zni1k+HI6MlZMjjhHabTgGnuvi9l/jMEIyvOdfetw9mGu394OOsXmG8A17p7od3kkzPuXpXrOsjIUEt/5GwBLk9OmNlrgfLcVaegzQbW5roSmUgZfkAkJxT6I+d24IMp01cCt6UWMLO4mX3DzLab2Z6wy6Y8ZfmnzGy3me0ysw/1WfdIV4qZTTCz+8ys0cz2h69npJR92My+ZGZ/MrNDZvZbM5uUrtLhgz0uTJkuNrN9yQc+mNlPzewlMztgZo+Y2Un9vM9VZvZYn3mp3VNH3fc+6xWZ2efNbFv4wIrbzGxc+B6HCcZpf9bMNvWz/plmtjKs80ozOzOc/1YzW5NS7vdmtiJl+jEze1f4equZfdKCh18csODhH2UpZS80s2fMrMXM/mxmJ6cs22pmnzGz1UBruuAP9+Wb4bHeFb6OpyxfEr7/QTPbZGbnh/NrzeyH4Tr7zewXGf7+fxT+zn8Xfib+aGazh3KsjvY57cfs/j6LZnaxBQ9daQk/tyf2+T1+KjwGrWZ2s5lNMbP7w/f6vaU8gMbMzgiPRYuZPWtmZ6csu8rMNofrbTGz92VQ78KQ69uYC/EH2Eow2NR64ESCUNpB0CJ1YE5Y7psE43HUAtXAr4D/DJedD+wBXkMwOuFPwnWPC5f/CPhy+Hoi8G6C8cqrCW5t/0VKfR4muPX7eIK/Nh4GvtpP3a8jGOgtOf1O4IWU6Q+F24iH9X8mZVlqna4CHuvz3qn173ff09TpQwS37M8DqggG7ro93fumWbeW4EEdHyDozrw8nJ4IlAHtwKRw2UsEA2BVh7+ndmBiyjFdQdBtV0vwnIMPh8tOJRhUa3F4rK8My8dT1n2GYLCt8n7qeT3wBMEwvHXAn4EvhcsWEQxLfC5BQ206cEK47NfA3QTDOZQAZ2X4+/8RcIhgfP84wcNdHhvssWKAz2ma/XyYfj6L4bzWcD9LCIbc3giUpvwenwCmhL+DvcBTBMOPx4GHgC+EZacDTQRDmBSF79kU/m4rgYPAgrDsMcBJuc6NUcunXFegEH94OfQ/D/xn+A/jdwTB4sAcgnE4WoFjU9Z7A8GohAC3kBLM4T+ItKGfZvunAPtTph8GPp8y/VGCpzelW/e4MAwqwuk7gOv6KTs+rNO4vnXiKKEz0L6n2c6DwEdTphcQjHVSnPq+/az7AWBFn3mPA1eFrx8F/orgKWW/Be4Jj9dbgdV9jun7U6a/DnwvfP1dwoBOWb6elwN4K/ChAT4zm4B3pEyfB2wNX3+f4ElTfdc5huA5BBPSLOv3959yrO5KWVYF9AIzB3OsBvqcpqlXv59F4N+Ae1KWFQE7gbNTfo/vS1n+M4JhqpPTHyNs7ACfIaVhEM57gOALuRJoIWgopf0SLuQf9S+OrNuBRwjGE7+tz7I6gpb5k2ZHhtk2gpYiBC3K1HHmt/W3ETOrAG4gCKvkn7fVZhZz995w+qWUVdoI/pG/irtvNLN1wEVm9ivgYoKWVPJxlV8BLg3rn3zwySSClmimBtr3vqbxyv3fRvAFOoUgFI6m77rJ9ZMPr/gjwWBvDeHr/cBZQGc4narv73Ba+Ho2cKWZfSxleWnKckh5eEbYlfD9cPJRd78gTT23paw/E1iWZt9mAs3uvj/NskwcqZO7Hzaz5nCbqQ/6yNrnNEV/n8VX/A7cPWFmO3jlg0b2pLxuTzOdfK/ZwKVmdlHK8hLgD+7eambvBT4J3GxmfyJ4ROkLGdQ976lPfwS5+zaCE7rvIOiSSLWP4EN6kruPD3/G+ctXTezmlWNvzzrKpv6ZoPW72N2Tj+SD9A9tyMSdBN0gS4Dn3X1jOP+KcN5fAOMI/mLpbzutBGERFDCbmrJsoH3vaxfBP+KkWQTPEt6TvvhR102un/yySIb+W8LXfyQI/bN4dej3ZwfwlZR9Ge/uFe5+Z0qZIyMbuvsd7l4V/iQfKpJuH5Njre8Aju1nu7VmNj7NsqP9/pNmpiyvIui+6Tu+ezY/pwN5xe/Agm+ZmQz8xZ7ODoKWfuoxqXT3rwK4+wPufi7BX0svAD8YRr3zikJ/5F0NvM3dW1NnunuC4IN2g5lNhuBB0mZ2XljkHuAqM1sYtuS/cJRtVBP8w2wxs9oBymbiLuDtwEcI+mhTt9NJ0DdaAfzHUd7jWeAkMzslPOH5xeSCDPa9rzuBf7LgOQpV4Xbv9pcfuXc0y4DjzewKC05KvxdYCNwXLv8zwRfmIoJuoLUEwbOY4K+0TPwA+LCZLbZApZm908yqM1wfgn38vJnVhSc2rwN+HC67GfhrMzvHgpPa083sBA/GYr8f+H8WnMwvMbPkF36/v/8U7zCzN1nwbIovAcvdPbWVn+3P6UDuAd4Z7mcJQWOmk+AYDdaPCf5aPc/MYmZWZmZnm9mM8OTvxRY8qrITOEzQtRUJCv0R5u6b3H1VP4s/Q3Ci6gkzOwj8niCAcPf7CU6gPRSWeegom/kmwUmxfQQnun4zzDrvJuj3PpPgJGHSbQR/fu8keBjGE0d5jxcJTk7+nmBc8cf6FOl339O4hZe7yrYAHQT9t5nsSxNwIUGANBGcHLzQw/snwi/jp4C17t4VrvY4sM3dM3qCVXh8/xb4NkH30EaCPvXB+DIvj7O/JqzTl8P3XwH8NUEX3gGCv0CSLeIPEJzfeIHgxOY/husM9PuH4Av9CwQP9j4N6O8Klmx9To/K3dcD7we+RfBZvgi4KOW4DOa9dhD8VfovBM8l3gF8iiDzigg+D7sI9v0sgnMLkaDx9EUiyMx+RPDoxs/nui4yutTSFxGJEIW+iEiEqHtHRCRC1NIXEYkQhb6ISIQo9EVEIkShLyISIQp9EZEIUeiLiETI/wfsdimKCtEi+AAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10f7c7390>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = pyplot.figure()\n",
    "sns.distplot(train.SkinThickness.values, bins=30, kde=True)\n",
    "pyplot.xlabel('Median value of owner-occupied homes', fontsize=12)\n",
    "pyplot.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYQAAAENCAYAAAAPAhLDAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzt3XmYXVWd7//3p8akMqdSCZlIAknAAAISgziBIDKohNstD8FWUfFy9YpTt90NV6X7h/rr5j5eQRS90kKLOASktTtqFEFABTWkQKYkJClCQopMRRJSmSo1fe8fe1U4KU9VnZpSqcrn9Tz1ZO817LPW2Sfne/a0liICMzOzooFugJmZHRkcEMzMDHBAMDOzxAHBzMwABwQzM0scEMzMDHBAMDOzxAHBzMwABwQzM0tKBroB3TFhwoSYOXPmQDfDzGxQefzxx1+OiKquyg2qgDBz5kyqq6sHuhlmZoOKpA2FlPMpIzMzAxwQzMwscUAwMzPAAcHMzBIHBDMzAxwQzMwscUAwMzPAAcHMzBIHBDMzAwbZk8pHuh8ue7HT/PeeeexhaomZWff5CMHMzAAHBDMzSxwQzMwMcEAwM7OkoIAg6UJJqyXVSLo2T365pLtT/jJJM1N6paSHJO2R9I12dcok3SZpjaTnJP11X3TIzMx6psu7jCQVA7cC5wO1wHJJSyJiZU6xq4CdETFb0iLgRuByoAH4AnBy+sv1OWBbRMyVVASM73VvzMysxwo5QlgA1ETEuohoBBYDC9uVWQjcmZbvBc6TpIjYGxGPkAWG9j4M/AtARLRGxMs96oGZmfWJQgLCVGBjznptSstbJiKagV1AZUcblDQ2LX5R0hOSfixpUgdlr5ZULam6rq6ugOaamVlPFBIQlCctelAmVwkwDXg0Il4H/BH4Sr6CEXFbRMyPiPlVVV1OCWpmZj1USECoBabnrE8DNnVURlIJMAbY0ck2twP7gJ+m9R8DryugLWZm1k8KCQjLgTmSZkkqAxYBS9qVWQJcmZbfAzwYER0eIaS8nwHnpKTzgJUdlTczs/7X5V1GEdEs6RrgPqAYuCMiVki6AaiOiCXA7cBdkmrIjgwWtdWXtB4YDZRJuhR4R7pD6R9TnZuBOuBDfds1MzPrjoIGt4uIpcDSdmnX5yw3AJd1UHdmB+kbgLcW2lAzM+tfflLZzMwABwQzM0scEMzMDHBAMDOzxAHBzMwABwQzM0scEMzMDHBAMDOzxAHBzMwABwQzM0scEMzMDHBAMDOzxAHBzMwABwQzM0scEMzMDHBAMDOzpKCAIOlCSasl1Ui6Nk9+uaS7U/4ySTNTeqWkhyTtkfSNDra9RNKzvemEmZn1XpcBQVIxcCtwETAPuELSvHbFrgJ2RsRs4CbgxpTeAHwB+GwH2/4rYE/Pmm5mZn2pkCOEBUBNRKyLiEZgMbCwXZmFwJ1p+V7gPEmKiL0R8QhZYDiEpJHA3wJf6nHrzcyszxQSEKYCG3PWa1Na3jIR0QzsAiq72O4Xgf8D7OuskKSrJVVLqq6rqyuguWZm1hOFBATlSYselHm1sHQaMDsiftrVi0fEbRExPyLmV1VVdVXczMx6qJCAUAtMz1mfBmzqqIykEmAMsKOTbZ4FnCFpPfAIMFfSw4U12czM+kMhAWE5MEfSLEllwCJgSbsyS4Ar0/J7gAcjosMjhIj4VkRMiYiZwJuBNRFxTncbb2ZmfaekqwIR0SzpGuA+oBi4IyJWSLoBqI6IJcDtwF2SasiODBa11U9HAaOBMkmXAu+IiJV93xUzM+uNLgMCQEQsBZa2S7s+Z7kBuKyDujO72PZ64ORC2mFmZv3HTyqbmRnggGBmZokDgpmZAQ4IZmaWOCCYmRnggGBmZokDgpmZAQ4IZmaWOCCYmRnggGBmZokDgpmZAQ4IZmaWOCCYmRnggGBmZokDgpmZAQUGBEkXSlotqUbStXnyyyXdnfKXSZqZ0islPSRpj6Rv5JSvkPQLSc9JWiHpX/uqQ2Zm1jNdBgRJxcCtwEXAPOAKSfPaFbsK2BkRs4GbgBtTegPwBeCzeTb9lYg4ETgdeJOki3rWBTMz6wuFHCEsAGoiYl1ENAKLgYXtyiwE7kzL9wLnSVJE7I2IR8gCw0ERsS8iHkrLjcATwLRe9MPMzHqpkIAwFdiYs16b0vKWiYhmYBdQWUgDJI0F3g38ppDyZmbWPwoJCMqTFj0o85cblkqAHwG3RMS6DspcLalaUnVdXV2XjTUzs54pJCDUAtNz1qcBmzoqk77kxwA7Ctj2bcDaiLi5owIRcVtEzI+I+VVVVQVs0szMeqKQgLAcmCNplqQyYBGwpF2ZJcCVafk9wIMR0ekRgqQvkQWOT3evyWZm1h9KuioQEc2SrgHuA4qBOyJihaQbgOqIWALcDtwlqYbsyGBRW31J64HRQJmkS4F3APXA54DngCckAXwjIr7Tl50zM7PCdRkQACJiKbC0Xdr1OcsNwGUd1J3ZwWbzXXcwM7MB4ieVzcwMcEAwM7PEAcHMzAAHBDMzSxwQzMwMcEAwM7PEAcHMzAAHBDMzSxwQzMwMcEAwM7PEAcHMzAAHBDMzSxwQzMwMcEAwM7PEAcHMzAAHBDMzSwoKCJIulLRaUo2ka/Pkl0u6O+UvkzQzpVdKekjSHknfaFfnDEnPpDq3KE2bZmZmA6PLgCCpGLgVuAiYB1whaV67YlcBOyNiNnATcGNKbwC+AHw2z6a/BVwNzEl/F/akA2Zm1jcKOUJYANRExLqIaAQWAwvblVkI3JmW7wXOk6SI2BsRj5AFhoMkTQZGR8QfIyKA7wGX9qYjZmbWO4UEhKnAxpz12pSWt0xENAO7gMoutlnbxTbNzOwwKiQg5Du3Hz0o06Pykq6WVC2puq6urpNNmplZbxQSEGqB6Tnr04BNHZWRVAKMAXZ0sc1pXWwTgIi4LSLmR8T8qqqqApprZmY9UUhAWA7MkTRLUhmwCFjSrswS4Mq0/B7gwXRtIK+I2AzslvSGdHfRB4D/6nbrzcysz5R0VSAimiVdA9wHFAN3RMQKSTcA1RGxBLgduEtSDdmRwaK2+pLWA6OBMkmXAu+IiJXAx4DvAsOBX6Y/MzMbIF0GBICIWAosbZd2fc5yA3BZB3VndpBeDZxcaEPNzKx/+UllMzMDHBDMzCxxQDAzM8ABwczMEgcEMzMDHBDMzCxxQDAzM8ABwczMEgcEMzMDHBDMzCxxQDAzM8ABwczMEgcEMzMDHBDMzCxxQDAzM8ABwczMkoICgqQLJa2WVCPp2jz55ZLuTvnLJM3Mybsupa+WdEFO+mckrZD0rKQfSRrWFx0yM7Oe6TIgSCoGbgUuAuYBV0ia167YVcDOiJgN3ATcmOrOI5tO8yTgQuCbkoolTQU+CcyPiJPJpuZchJmZDZhCjhAWADURsS4iGoHFwMJ2ZRYCd6ble4HzJCmlL46IAxHxAlCTtgfZ9J3DJZUAFcCm3nXFzMx6o5CAMBXYmLNem9LylomIZmAXUNlR3Yh4CfgK8CKwGdgVEb/uSQfMzKxvFBIQlCctCiyTN13SOLKjh1nAFGCEpPflfXHpaknVkqrr6uoKaK6ZmfVEIQGhFpiesz6Nvzy9c7BMOgU0BtjRSd23Ay9ERF1ENAE/Ad6Y78Uj4raImB8R86uqqgporpmZ9UQhAWE5MEfSLEllZBd/l7QrswS4Mi2/B3gwIiKlL0p3Ic0C5gCPkZ0qeoOkinSt4TxgVe+7Y2ZmPVXSVYGIaJZ0DXAf2d1Ad0TECkk3ANURsQS4HbhLUg3ZkcGiVHeFpHuAlUAz8PGIaAGWSboXeCKl/xm4re+7Z2ZmhVL2Q35wmD9/flRXVw90Mzr0w2Uvdpr/3jOPPUwtMTN7laTHI2J+V+X8pLKZmQEOCGZmljggmJkZ4IBgZmaJA4KZmQEOCH0mInhx+15Wbto10E0xM+uRLp9DsK79uHojX3+whhd37APgY2cfz/TxFQPcKjOz7vERQi/t2t/E5376LKOGlfBXp0+loqyYB5/bNtDNMjPrNh8h9NJ9K7bQ2NLKly49mVWbd7PnQDO/XrmV2p37mDbORwlmNnj4CKGXfvbUJo4dX8Fp08cC8IbjKhleWsxDPkows0HGAaEXXt5zgEdrXubdp04mG6MPhpUW86bZlazasptNr+wf4BaamRXOAaEXlj6zmdaAS049dL6gNx4/geIi8eTGVwaoZWZm3eeA0AtLntzE3EkjOeGYUYekDystZkZlBTXb9gxQy8zMus8BoYdeemU/1Rt2csmpU/Lmz6kayZb6BnY3NB3mlpmZ9YwDQg8tW7cdgPPnHZM3f/bE7Kjh+TofJZjZ4OCA0ENP1+6ioqyY2RNH5s2fPHYYFWXFrN3qgGBmg0NBAUHShZJWS6qRdG2e/HJJd6f8ZZJm5uRdl9JXS7ogJ32spHslPSdplaSz+qJDh8szL+3i5CljKC5S3vwiieOrRlJTt4fBNAmRmR29ugwIkoqBW4GLgHnAFZLmtSt2FbAzImYDNwE3prrzyKbTPAm4EPhm2h7A14BfRcSJwKkMojmVm1taWbFpF6dMG9NpuTkTR7K7oZltuw8cppaZmfVcIUcIC4CaiFgXEY3AYmBhuzILgTvT8r3AecpuzF8ILI6IAxHxAlADLJA0Gngr2VzMRERjRAyaezRr6vbQ0NTKKVM7Dwhtp5N8t5GZDQaFBISpwMac9dqUlrdMRDQDu4DKTuoeB9QB/y7pz5K+I2lEvheXdLWkaknVdXV1BTS3/z1dm41o2tURwtiKMiaMLHNAMLNBoZCAkO8kefuT4h2V6Si9BHgd8K2IOB3YC/zFtQmAiLgtIuZHxPyqqqoCmtv/nqndxcjyEmZV5o1hhziuaiTrt++l1dcRzOwIV0hAqAWm56xPAzZ1VEZSCTAG2NFJ3VqgNiKWpfR7yQLEoPD0S7s4eepoijq4oJxrxvgKDjS3srW+4TC0zMys5woJCMuBOZJmSSoju0i8pF2ZJcCVafk9wIOR3VqzBFiU7kKaBcwBHouILcBGSSekOucBK3vZl8OisbmVVZvree20sQWVn5GOIjZs39efzTIz67Uuh7+OiGZJ1wD3AcXAHRGxQtINQHVELCG7OHyXpBqyI4NFqe4KSfeQfdk3Ax+PiJa06U8AP0hBZh3woT7uW79Ys3U3jc1dX1BuM66ilFHlJQcnzzEzO1IVNB9CRCwFlrZLuz5nuQG4rIO6Xwa+nCf9SWB+dxp7JHjmpeyC8mu7uKDcRhLHVlawYfve/myWmVmv+Unlbnq6dhejh5VwbDemyJwxvoKd+5rY5usIZnYEc0DopjVbd3Pi5NEH5z8oRNt1hMc37OyvZpmZ9ZoDQjdEBGu37mbupPzjF3Vk8thhlBSJagcEMzuCOSB0Q93uA9Q3NDNn4qiuC+coKSpi2rjhDghmdkRzQOiGtemJ4zkdjHDamWPHj2DFS7toaGrpurCZ2QBwQOiGNVt3AzC7m6eMAGZUVtDcGp5W08yOWA4I3bB22x7GDC+lamR5t+vOrByBBI+9sKMfWmZm1nsOCN1Qs3UPcyaO7NYdRm2GlxVzwqRRDghmdsRyQChQRLBm227m9OB0UZs3HFfJ4xt20tTS2octMzPrGw4IBdq+t5FX9jUdnCu5JxbMGs/+ppaDTzubmR1JHBAK1DY3cnefQci1YNZ4AJat82kjMzvyOCAUqGZbdodRd59ByDVhZDnHV43gsRe291WzzMz6jANCgdZu28Oo8hImje7+HUa5zjyukur1O2lp9YQ5ZnZkcUAo0Nqte5g9qWd3GOU6c9Z4dh9oZtXm+j5qmZlZ33BAKNDabXt69IRyewevI/j2UzM7wjggFGDn3kZe3nOgV9cP2kweM5yZlRU8srauD1pmZtZ3CgoIki6UtFpSjaRr8+SXS7o75S+TNDMn77qUvlrSBe3qFUv6s6Sf97Yj/ammLrvDqCdDVuRz3msm8ejz29l7oLlPtmdm1he6DAiSioFbgYuAecAVkua1K3YVsDMiZgM3ATemuvPIptM8CbgQ+GbaXptPAat624n+1nbLaV+cMgI4f94kGptb+d0aHyWY2ZGjkCOEBUBNRKyLiEZgMbCwXZmFwJ1p+V7gPGVXXxcCiyPiQES8ANSk7SFpGvBO4Du970b/WrttNxVlxUwZM7xPtjd/xjjGVpTy65Vb+2R7ZmZ9oZCAMBXYmLNem9LylomIZmAXUNlF3ZuBfwA6HcdB0tWSqiVV19UNzC/qmm17mD1xJEVFvbvDqE1JcRHnnjiRB5/b5mEszOyIUUhAyPct2P4m+o7K5E2X9C5gW0Q83tWLR8RtETE/IuZXVVV13dp+sGbrbmb30emiNu+YN4ld+5tYvt53G5nZkaGQgFALTM9ZnwZs6qiMpBJgDLCjk7pvAi6RtJ7sFNS5kr7fg/b3u137m9ha3zd3GOV6y5wqykqKuN+njczsCFFIQFgOzJE0S1IZ2UXiJe3KLAGuTMvvAR6MiEjpi9JdSLOAOcBjEXFdREyLiJlpew9GxPv6oD99rqYXs6R1ZkR5CW+ZPYH7V24le6vMzAZWlwEhXRO4BriP7I6geyJihaQbJF2Sit0OVEqqAf4WuDbVXQHcA6wEfgV8PCIG1RySbWMYzZ3Ut0cIAO86dTK1O/fzsO82MrMjQEkhhSJiKbC0Xdr1OcsNwGUd1P0y8OVOtv0w8HAh7RgIa7fuYVhpEVPH9c0dRrneecoU/vevVvPt3z7P206Y2OfbNzPrDj+p3IW12/ZwfNVIivvoDqNcZSVFXPXmWfxp3Q7PtWxmA84BoQs1fTSGUUcWLTiW0cNK+PZvn++31zAzK4QDQif2HGjmpVf2M6cfrh+0GVlewvvPmsGvVmxhXRoiw8xsIDggdOL5dIdRXz+D0N4H3ziLitJiPnP3kzQ0Dapr7mY2hDggdGJtP91y2l7VqHJuuvw0nqrdxXU/eca3oZrZgHBA6MTqLfWUlxRx7PiKfn+td5x0DH97/lx++ueXuOmBtZ5RzcwOOweETqzcXM+Jx4yipPjwvE2fOHc2C0+bwi2/Wcs7b/k9j9a8TKsDg5kdJgU9h3A0ighWbqrngpOOOWyvKYmbLz+NC046hi//YhV/851ljB5WwhkzxnHi5NEcO76CY8dXMH1cBZPHDqP0MAUqMzs6OCB0YEt9Azv3NTFvyujD+rqSuPiUyZx74kSWPrOZ5et38PiGnTxS8zJNLa8eLRQJpowdzszKEcyeOPKQZyXee+axh7XNZjY0OCB0YNXmegDmTT68AeGHy148ZP2UqWM5ZepYWiOo39/Ejr2N7NjbyPa9jWzYvo8/rdvOIzUvM6KsmNdOG8sbjqv8i22054BhZvk4IHRg5aYsIJx4mANCR4okxlaUMbaijONyRgFvamll7dY9PFX7CsvX7+BP67Zz4uTRvO2EKqaN6/+L4WY2dDggdGDl5npmVFYwsvzIfotKi4uYN2U086aMZs+BZv74/Hb+tG4739xcz+nTx/KOk45hzPDSgW6mmQ0CR/a33QBauan+sJ8u6q2R5SWcP28Sb5kzgd+uqePRmpd5dtMu3jy7irfOnUB5SXHXGzGzo5ZvU8ljz4FmNuzYN+gCQpthpcVccNIxfObtc3nN5NE8tHobX/31Gv784k4/9GZmHXJAyGP1lnoiOOx3GPW1cSPKWPT6Y/no2cczpqKUHz9ey+2PvsDzHjPJzPIoKCBIulDSakk1kq7Nk18u6e6Uv0zSzJy861L6akkXpLTpkh6StErSCkmf6qsO9YW2C8qDPSC0OXZ8BR89+3gWnjaFTa/s56Kbf89X71/jcZPM7BBdXkOQVAzcCpxPNkfycklLImJlTrGrgJ0RMVvSIuBG4HJJ88imyDwJmAI8IGku0Az8XUQ8IWkU8Lik+9ttc8Cs3FzP2IpSjhk9rE+329XtoP2pSOLMWZXMmzyaVZvrueU3a/mvJ1/iiwtP5q1zq7regJkNeYUcISwAaiJiXUQ0AouBhe3KLATuTMv3AudJUkpfHBEHIuIFoAZYEBGbI+IJgIjYTTY159Ted6dvtF1QzrowtIwaVsrNi07nBx85kyKJD9zxGNf88Am21TcMdNPMbIAVEhCmAhtz1mv5yy/vg2XSHMy7gMpC6qbTS6cDywpvdv/Z39jCys31vHba2IFuSr960+wJ/PJTb+Ezb5/Lr1du5bz/81vu/MN6D6pndhQrJCDk+5nc/lujozKd1pU0EvgP4NMRUZ/3xaWrJVVLqq6r6//J6P+8cSdNLcGZs8b3+2sNtGGlxXzq7XO479Nv5bRjx/JPS1Zw6a2P8kztroFumpkNgEICQi0wPWd9GrCpozKSSoAxwI7O6koqJQsGP4iIn3T04hFxW0TMj4j5VVX9f677sRd2IMEZM8f1+2sdKWZNGMH3PryAW644nS31DSy89RH+eckK6huaBrppZnYYFfJg2nJgjqRZwEtkF4nf267MEuBK4I/Ae4AHIyIkLQF+KOmrZBeV5wCPpesLtwOrIuKrfdOVvrF8/Q5ec8xoRg8buk/3dnZx+6NvPZ77V23hzj+s5z+eqOWdp0zmlKlj/uJ6isdDMht6ujxCSNcErgHuI7v4e09ErJB0g6RLUrHbgUpJNcDfAtemuiuAe4CVwK+Aj0dEC/Am4P3AuZKeTH8X93Hfuq2xuZXHN+xkwVFwuqgjw8uKueTUqXzsnOMZVV7C4uUb+e4f1rN9z4GBbpqZ9bOChq6IiKXA0nZp1+csNwCXdVD3y8CX26U9Qv7rCwPq2U27aGhqPaoDQptp4yr42DmzWfbCdu5fuZWv/WYt55wwkbPnVh0cZtvMhhaPZZRj+Qs7AHj9TAcEgOIi8cbjJ3DSlDH84ulNPLBqK2u27uby10/vurKZDToeuiLHYy/s4LiqEVSNKh/ophxRxgwv5b1nzuDy109na30DX39wLb96dvNAN8vM+pgDQtLaGixfv4MFPjro0KnTxnLN22ZTOaKcj37/Cb7wn896+AuzIcSnjJJVW+qpb2j29YMuVI4s53+cfRwbd+zj337/AsvX7+Ab730dsyeOHOimmVkv+Qgh+dWzWygSvHnOhIFuyhGvpKiIz71zHv/+odezbfcB3v31R7ineqOH1jYb5BwQgIhgyVObOOv4SiaO6tsB7Yayt50wkV9+6i2cNn0s/3Dv03z67ifZc6B5oJtlZj3kgAA889IuNmzfxyWnThnopgw6k0YP4/sfOZO/O38uP3tqE++65fc8tfGVgW6WmfWAryEAS57cRGmxuPCkyQPdlEGj/dPOlSPL+cibj+Pu6o1ceuujvGn2BG77wBlUlPkjZjZYHPVHCK2twc+f3szZcycypmLoDldxOMycMIJPnjuH188azyM1L3P+V3/HT/9c6xFUzQaJoz4gPLZ+B1vqG7jkNJ8u6gvDy4q59LSpXP2W4xhbUcpn7n6Kd97ye3721CaaWloHunlm1omj/nj+3sdrGV5azNtfM3GgmzKkzJwwgmsvOpFfPLOZr96/hk/86M9MHFXOotdP56JTJnPiMaOG5AREZoPZUR0Q1mzdzU+eqOXKN870ue5+UFQk3n3qFC4+ZTK/XbON7/5hA19/qIZbHqxhRmUFZx1XyRkzxvHaaWOZUVnBsNLigW6y2VHtqP4W/JelqxhRXsInz50z0E0Z0oqLxLknTuLcEydRt/sAD6zaygMrt7L0mc0sXp5NqFckmD6+guOrRnLchBHMqhrBzMoRzKisYPKY4R5Qz+wwOGoDwiNrX+ah1XX8r4tPZNyIsoFuzpDU2bwL571mEm87cSJ1uw+wZVcDdXsOULf7ACs31fO7NXU051yILisuYvr44SlAjGDmhApmVI5gVuUIpo0bTpGDhVmfOCoDQkNTC1/6xUqmjRvOB86aOdDNOWoVSUwaPYxJow99GLA1gvr9TWzf28iOPY1s33uA7XsbWbGpnt+traOp5dBgMXF0Ocek7RwzJvt3ZPmrH21P5mNWmKMuIBxobuF/3PU4q7fu5tvvO8PnrY9ARRJjK8oYW1HG8e1mTY0Idh9oZvueRl7ec4At9Q1s3dXAys31VG/YebDcyPISJqVAUVIk5h4zirmTRvpakVknCvrfIelC4GtAMfCdiPjXdvnlwPeAM4DtwOURsT7lXQdcBbQAn4yI+wrZZn840NzCx3/wBL9dU8eNf30K7zjpmP5+Setjkhg9rJTRw0qZNWHEwfSIYM+BZrbWvxokttQ38Nj6HTz6/PZUF44dX8HcSaOYMb6CqeOGM2XscKaOzf4dM7z0sF+riAj2N7XQ1BJEBK2RHSEBjCgrYVhpke/GssOmy4AgqRi4FTgfqAWWS1oSEStzil0F7IyI2ZIWATcCl0uaRzYH80lkcyo/IGluqtPVNvtMa2s2VtFX71/Dizv28aVLT+by1/s0wlAiiVHDShk1rPSQkVdbI3jz7Ak8t2U3a7buZvWW3azeupvfr62joenQ5yIEDCstZnhZMRVlxQwvTf+WlXDGjLFUlJUwoqyYEeUlr/6VFVNafOjjPAHsO9BMfUMzuxua2N3QzK79Tbyyr5Ed+5rYubeRHXsb2bmvke17G2ls7vj5jCJBeUkxw0qLGFZazIzKCkYPK2XM8FJGDy9NyyWMHv5q2oiyEoan9g8vLWZYWRFlxQ4s1rVCjhAWADURsQ5A0mJgIdk8yW0WAv+clu8FvqHs07cQWBwRB4AX0pzLC1K5rrbZJ1pag//2zUd5unYXr5k8mu9+6PWcc4KfOThaFEnMnDCCmRNGcOHJrx4RRgQ79zXx0s79LF7+Irv2N7GvsYV9jS3sb2xmf1O2vGNvI/saW1i+fkevn7geVlrEiLISKlJQmTJmOLMnZqexSoqElAUlSQTZHN8NTS00NLVwIC23tAYbtu+jvqHpYJsLIaC0pIjS4iLGVZRmwaKsOAuApa8GwGE5gSQ3f1hpEWUlRZQUFVFWIkqLiw7+lRUXUVoiSoqKKC5S6kPb62YL7WPRwfy0oPbp7eodrN5FflfbO/hP+jci+yxEZIE8ItK/hy63puXW1jh0PV49smtLl6BYQhLFRaJI2eewqEgUK60XiSJl6yoipYui9NviQHMrDY0tbN/byJb6Bl4sLIpHAAANYUlEQVTefYDL5vf/TIWFBISpwMac9VrgzI7KRESzpF1AZUr/U7u6U9NyV9vsE8VF4uJTJvORtxzHu06Z7DtSjkKd3e0EcNKUMV1uIyJobg0am1s50NxKY3Mrjc3ZF3VLnmG/y4qzX/TDSosZVlJEeWlxv5yOamnNTjm1BY79jS00trTS1NJKU3McXG5saaWpuZWmlji43tDUwu6G5my9OdVpy29uxQOOHFkuPmUyI8r79xpYIVvP9ylu/1npqExH6fmGzMj7+ZN0NXB1Wt0jaXUH7TwSTABeHuhGHEbu79B2tPUXjuA+j7yxV9VnFFKokIBQC+Qeq0wDNnVQplZSCTAG2NFF3a62CUBE3AbcVkA7B5yk6oiYP9DtOFzc36HtaOsvHJ19zlXI4HbLgTmSZkkqI7tIvKRdmSXAlWn5PcCDkU2ftQRYJKlc0ixgDvBYgds0M7PDqMsjhHRN4BrgPrJbRO+IiBWSbgCqI2IJcDtwV7povIPsC55U7h6yi8XNwMcjogUg3zb7vntmZlYoeR7cviPp6nSK66jg/g5tR1t/4ejscy4HBDMzAzxBjpmZJQ4IfUDShZJWS6qRdO1At6cvSJou6SFJqyStkPSplD5e0v2S1qZ/x6V0SbolvQdPS3rdwPagZyQVS/qzpJ+n9VmSlqX+3p1ugiDdKHF36u8ySTMHst09JWmspHslPZf29VlDeR9L+kz6PD8r6UeShg31fdwdDgi9lDO0x0XAPOCKNGTHYNcM/F1EvAZ4A/Dx1K9rgd9ExBzgN2kdsv7PSX9XA986/E3uE58CVuWs3wjclPq7k2yYFsgZrgW4KZUbjL4G/CoiTgROJev7kNzHkqYCnwTmR8TJZDe0tA21M5T3ceEiPXrtv579AWcB9+WsXwdcN9Dt6od+/hfZ2FOrgckpbTKwOi1/G7gip/zBcoPlj+x5mN8A5wI/J3uw8mWgpP2+JrtD7qy0XJLKaaD70M3+jgZeaN/uobqPeXVEhfFpn/0cuGAo7+Pu/vkIoffyDe0xtYOyg1I6VD4dWAZMiojNAOnftoGhhsL7cDPwD0DbaHOVwCsR0ZzWc/t0yHAtQNtwLYPJcUAd8O/pNNl3JI1giO7jiHgJ+ArwIrCZbJ89ztDex93igNB7hQztMWhJGgn8B/DpiKjvrGietEHzPkh6F7AtIh7PTc5TNArIGyxKgNcB34qI04G9vHp6KJ9B3ed0LWQhMIts9OURZKfB2htK+7hbHBB6r5ChPQYlSaVkweAHEfGTlLxV0uSUPxnYltIH+/vwJuASSeuBxWSnjW4GxqbhWODQPh3sb7vhWgaTWqA2Ipal9XvJAsRQ3cdvB16IiLqIaAJ+AryRob2Pu8UBofeG5DAcysYRvh1YFRFfzcnKHabkSrJrC23pH0h3orwB2NV22mEwiIjrImJaRMwk24cPRsTfAA+RDccCf9nffMO1DBoRsQXYKOmElHQe2agCQ3Ifk50qeoOkivT5buvvkN3H3TbQFzGGwh9wMbAGeB743EC3p4/69Gayw+OngSfT38Vk51B/A6xN/45P5UV2t9XzwDNkd3IMeD962PdzgJ+n5ePIxt+qAX4MlKf0YWm9JuUfN9Dt7mFfTwOq037+T2DcUN7HwP8HPAc8C9wFlA/1fdydPz+pbGZmgE8ZmZlZ4oBgZmaAA4KZmSUOCGZmBjggmJlZ4oAwBEgKSbPT8v+V9IWBblMuSd+V9KUBeN3/JmmjpD2STj/crz8UpffyuB7WPfg5zZP3sKSP9K511ltdTqFpfSc9BTsFmBIRL+ekP0k20uSsiFjfm9eIiI/2pv4Q8xXgmoj4ry5LWkEiYuRAt8H6j48QDr8XgCvaViSdAgwfuOYMaTOAQTFXd87QCWYDxgHh8LsL+EDO+pXA93ILpIk5viLpRUlb02mg4Tn5fy9ps6RNkj7cru7B0zOSxkn6uaQ6STvT8rScsg9L+qKkRyXtlvRrSRPyNTpNnvKunPUSSS+3TZIi6ceStkjaJel3kk7qYDsflPRIu7TcU16d9r1dvSJJn5e0QdI2Sd+TNCZtYw/ZePdPSXq+g/pvlLQ8tXm5pDem9LdJeian3AOSHstZf0TSpWl5vaTPKpswZpeyCVWG5ZR9l6QnJb0i6Q+SXpuTt17SP0p6GtibLyikvtyc9vWmtFyek78wbb9e0vOSLkzp4yX9e6qzU9J/Fvj+fze95/enz8RvJc3oyb7q7HPagRkdfRYlXaJsYptX0uf2Ne3ex79P+2CvpNslTZL0y7StB5Qm+Unl35D2xSuSnpJ0Tk7eByWtS/VekPQ3BbR76BjoR6WPpj9gPdkAW6uB15B9YW0k+yUbwMxU7maycVTGA6OAnwH/kvIuBLYCJ5ON1vjDVHd2yv8u8KW0XAn8NVCRtvNj4D9z2vMw2TAEc8mOUh4G/rWDtl9PNshd2/o7gedy1j+cXqM8tf/JnLzcNn0QeKTdtnPb32Hf87Tpw2TDChwHjCQbrOyufNvNU3c82WQo7yc7dXpFWq8kG7JgPzAh5W0hG/BsVHqf9gOVOfv0MbJTgePJJpj5aMp7HdnAcGemfX1lKl+eU/dJsgHUhnfQzhuAP5ENQV0F/AH4YspbQDYk8/lkP+6mAiemvF8Ad5MNRVEKnF3g+/9dYDfw1rQvv5ZbvtB9RRef0zz9fJgOPospbW/qZynZEOU1QFnO+/gnYFJ6D7YBT5AN2V4OPAj8Uyo7FdhONgxLUdrm9vTejgDqgRNS2cnASQP9vXFYv6MGugFH0x+vBoTPA/+S/tPcT/alE8BMsvFi9gLH59Q7i2yURoA7yPnSTv9Z8gaEPK9/GtkMUG3rDwOfz1n/n2SzZ+WrOzt9UVSk9R8A13dQdmxq05j2baKTL6Su+p7ndX4D/M+c9ROAJl6d7KSzL6D3A4+1S/sj8MG0/Hvgr8hmi/s1cE/aX28Dnm63T9+Xs/6/gf+blr9F+vLOyV/Nq1/O64EPd/GZeR64OGf9AmB9Wv422Uxf7etMJpvTYVyevA7f/5x9tTgnbyTQAkzvzr7q6nOap10dfhaBLwD35OQVAS8B5+S8j3+Tk/8fZEN6t61/gvRDCPhHcn40pLT7yIL1COAVsh9ReQP0UP/zecuBcRfwO7Jx2b/XLq+K7Bf949LB4dhF9gsTsl+iuWP2b+joRSRVkE39dyHZL0WAUZKKI6IlrW/JqbKP7AvgL0REjaRVwLsl/Qy4hOwXWNs0ol8GLkvtb5tgZgLZL9hCddX39qZwaP83kAXXSWRfGJ1pX7etftvkKL8lG+SuNi3vBM4GDqT1XO3fwylpeQZwpaRP5OSX5eRDzoQz6fTEt9Pq7yPiojzt3JBTfzqwNE/fpgM7ImJnnrxCHGxTROyRtCO9Zu7kOH32Oc3R0WfxkPcgIlolbeTQyXm25izvz7Petq0ZwGWS3p2TXwo8FBF7JV0OfBa4XdKjZNPIPldA24cEX0MYABGxgezi8sVkpzlyvUz2AT4pIsamvzHx6t0dmzl0TPpjO3mpvyP71XxmRIwmOw0A+Sf+KMSPyE6tLARWRkRNSn9vSns72ZjxMzt5nb1kXyRZAemYnLyu+t7eJrL/4G2OJZsLemv+4p3WbavfFkjaAsJb0/JvyQLC2fxlQOjIRuDLOX0ZGxEVEfGjnDIHR5eMiB9ExMj01zZxS74+to3XvxE4voPXHS9pbJ68zt7/NtNz8keSnRJqP+9BX35Ou3LIe6AsAk2n66Cfz0ayI4TcfTIiIv4VICLui4jzyY6yngP+rRftHnQcEAbOVcC5EbE3NzEiWsk+hDdJmgjZ5OCSLkhF7gE+KGleOgL4p05eYxTZf9pXJI3vomwhFgPvAD5Gdk4493UOkJ2LrQD+/0628RRwkqTT0sXXf27LKKDv7f0I+IyyuShGpte9O16dDrEzS4G5kt6r7AL55cA8snl2ITtXfwLZefrHImIF2ZfSmWRHd4X4N+Cjks5UZoSkd0oaVWB9yPr4eUlV6SLr9cD3U97twIcknafsAvtUSSdGNkfBL4FvKruxoFRS24+BDt//HBdLerOy+T2+CCyLiNyjg77+nHblHuCdqZ+lZD90DpDto+76PtlR7gWSiiUNk3SOpGnpQvQlyqYRPQDsITtddtRwQBggEfF8RFR3kP2PZBfN/iSpHniA7MuJiPgl2cW8B1OZBzt5mZvJLtC9THbR7Ve9bPNmsvPsbyS7YNnme2SH9C+RTTjyp062sYbsQukDZOPtP9KuSId9z+MOXj399gLQQHa+uJC+bAfeRfblsp3sQuW7Ij0fkgL1E8CKiGhM1f4IbIiIbXk2me81qoH/DnyD7JRTDdk5/O74Eq/OV/BMatOX0vYfAz5EdlpwF9mRS9sv6feTXU95juwi66dTna7ef8iC/T+RzQ52BtDRnTZ99TntVESsBt4HfJ3ss/xu4N05+6U729pIdjT7v8jmk94I/D3Zd2ER2edhE1nfzya7lnHU8HwIZnaQpO+STav5+YFuix1+PkIwMzPAAcHMzBKfMjIzM8BHCGZmljggmJkZ4IBgZmaJA4KZmQEOCGZmljggmJkZAP8PWMF7F1QhGLMAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x112b10e90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = pyplot.figure()\n",
    "sns.distplot(train.Insulin.values, bins=30, kde=True)\n",
    "pyplot.xlabel('Median value of owner-occupied homes', fontsize=12)\n",
    "pyplot.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Insulin为零看起来是合理的，因此不用做操作"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAENCAYAAADjW7WQAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzt3Xl8XOV56PHfMzPad8mSLWv1voFtwNiBOOxpICEhuYUbIG1Iw700beiWLkluE5rSpC25aUlvkyahhRBIwxLSNE7qhrCZsBhjgxfwimxrs2Rr39cZPfePc2QGoWVkzeiMNM/389FHZ3nPnGdmzjzzznvOeV9RVYwxxiQGn9cBGGOMmT2W9I0xJoFY0jfGmARiSd8YYxKIJX1jjEkglvSNMSaBWNI3xpgEYknfGGMSiCV9Y4xJIAGvAxhrwYIFWllZ6XUYxhgzp7z22mstqlo4Vbm4S/qVlZXs2bPH6zCMMWZOEZGaSMpZ844xxiQQS/rGGJNALOkbY0wCsaRvjDEJxJK+McYkEEv6xhiTQCJK+iJyrYgcFZEqEfnCOOtTROQxd/0uEakMW7deRHaKyEEReUNEUqMXvjHGmOmYMumLiB/4NnAdsBa4RUTWjil2O9CuqsuBe4F73G0DwA+Bz6jqOuAKYDhq0RtjjJmWSGr6m4EqVT2hqkPAo8ANY8rcAPzAnX4CuFpEBPgN4ICq7gdQ1VZVDUUndGOMMdMVyR25JUBd2Hw9sGWiMqoaFJFOoABYCaiIPAkUAo+q6tfH7kBE7gDuACgvL5/uczBm1vxoV+2k62/dYseviW+R1PRlnGUaYZkAsBX4hPv/YyJy9bsKqt6nqptUdVNh4ZRdRxhjjDlHkST9eqAsbL4UaJiojNuOnwO0ucufV9UWVe0DtgMXzjRoY4wx5yaSpL8bWCEiS0QkGbgZ2DamzDbgNnf6RuBZVVXgSWC9iKS7XwaXA4eiE7oxxpjpmrJN322jvxMngfuBB1T1oIjcDexR1W3A/cDDIlKFU8O/2d22XUT+EeeLQ4HtqvpfMXouxhhjphBR18qquh2naSZ82V1h0wPATRNs+0OcyzaNMcZ4zO7INcaYBGJJ3xhjEoglfWOMSSBxN1yiMfGkbyjIcFDx+SArNcnrcIyZMUv6xoyjbyjIHz26j6cOnQHA7xO++tHzPI7KmJmzpG/MGB19Q3z6wd3sq+vgjsuWsig7lWeOnOEvf/oGt26uYO3ibK9DNOacWdI3Jkz/UIib73uFE829fPvWC7nu/GIAbt5cxi33vcKju2u5fesSKgoyPI7UmHNjJ3KNCfN/nzzKkdPdfO+TF51N+ADpyQEe+NTFZKUG+Nm+Bpwbzo2ZeyzpG+PaXd3G918+yScvqeDKVUXvWl+QmcIVq4o43TVAdWufBxEaM3OW9I3Badb58x/vpyQ3jc9fu3rCchtKc0lL8vPy8ZZZjM6Y6LGkbwzwnR1VVLf28fXfXE9GysSnupIDPi6uzOdQQxcdfUOzGKEx0WEnck1CmGzwk66BYb7z/HGuX1/MpcsXTPlY71mazwtvNfPKiTauPW9RNMM0Juaspm8S3jOHmxgZgT//wKqIyuemJ7N2cTa7q9sIhkZiHJ0x0WVJ3yS0pq4B9lS3sXlp/rQuw7yoIo/+4RAnW3pjGJ0x0WdJ3yS0Xx06Q3LAN+7VOpNZuiCTgE84cqY7RpEZExuW9E3Caujo51BjF1tXLCBzkpO340kO+FhWmMnR0912zb6ZUyzpm4T13NEmUpN8XLp06pO341m1KIu23iFae+wqHjN32NU7JiGd7hrgYEMXV60uIi3ZD0x+hc94Vi3MAuDImW62ZqVEPUZjYsFq+iYhPXekiZSAj0uXFZzzY+RlJFOUlcLR011RjMyY2LKkbxJOU9cAb57q5JKlBaQnz+zH7qpFWVS39DE4HIpSdMbEliV9k3B2HGsmye/jvRHciDWVVYuyCKnyVlNPFCIzJvYs6ZuE0tI9yP66DrYszZ+0u4VIVeRnkOz3caLFkr6ZGyzpm4Sy41gTAb+wNQq1fHBG1CrPT6fGet00c4QlfZMw2nqH2FfXwebK/KiOd1uxIJ3TnQP0D1m7vol/lvRNwthxtAmfCO9bWRjVx60syECB2jar7Zv4F1HSF5FrReSoiFSJyBfGWZ8iIo+563eJSKW7vFJE+kVkn/v33eiGb0xkOvqG2FvbwabKPLKjWMsHKMtLxydQ3Wr98Jj4N+WZLBHxA98G3g/UA7tFZJuqHgordjvQrqrLReRm4B7g4+6646q6McpxGzMtL1S1oCiXrYhuLR+cLhkW56ZRY0nfzAGR1PQ3A1WqekJVh4BHgRvGlLkB+IE7/QRwtYhI9MI05ty19Ayyp7qNC8ryyE1Pjsk+KgsyqG/vZzBo7fomvkWS9EuAurD5enfZuGVUNQh0AqO3Oi4Rkb0i8ryIvG+G8Rozbfe/eJJgSLksym354SoL0gmOKG/Ud8ZsH8ZEQyRJf7wa+9huBScq0wiUq+oFwOeAH4lI9rt2IHKHiOwRkT3Nzc0RhGRMZDr7h3l4Zw3nleRQGMP+ccrdvvhfrW6L2T6MiYZIkn49UBY2Xwo0TFRGRAJADtCmqoOq2gqgqq8Bx4GVY3egqvep6iZV3VRYGLvamEk8D71cTc9gkCtWxfa4ykwJUJiZwp7q9pjux5iZiiTp7wZWiMgSEUkGbga2jSmzDbjNnb4ReFZVVUQK3RPBiMhSYAVwIjqhGzO53sEgD7x0kqtXF1Gckxbz/VUUpPN6bbv1r2/i2pRJ322jvxN4EjgMPK6qB0XkbhH5iFvsfqBARKpwmnFGL+u8DDggIvtxTvB+RlXt96+ZFY+8Wkt73zCfvWr5rOyvNC+djr5hu17fxLWIOh9R1e3A9jHL7gqbHgBuGme7nwA/mWGMxkzbwHCI+359gkuXFXBheR5HGmM/rGFpnvNrYl9dx7TG2zVmNtkduWZeeuK1epq6B/nslbNTywdYmJ1KSsDHAbuCx8QxS/pm3gmGRvju88fZWJY7o0FSpsvvE84ryWF/Xces7dOY6bLhEs28ED7U4d7adurb+7lyVRGPvFo3yVbRt740h0derSUYGiHgtzqViT92VJp5ZUSVHceaWZSdyupFWbO+/41luQwMj3DsjPWvb+KTJX0zrxxq6KK5e5ArVhXiRU8gG0pzAdhfb008Jj5Z0jfzhqqy42gTBRnJnFeS40kMFQXp5KQlccCSvolTlvTNvHHsTA8NnQNcvrIQn0f9/YkI60tz2FdnV/CY+GRJ38wLo7X8nLQkNpbnehrLhtJcjp3ptpG0TFyypG/mherWPmra+rhsxQICPm8P6w1luYRGlIMNVts38ceSvpkXdhxtIiMlwKbKfK9DYUOpcz5hv92kZeKQJX0z5715qpO3mnrYunwBSXFwbXxRdirFOal2k5aJS95/QoyZoQdePElywMeWJd7X8ketL82xK3hMXLKkb+a0pq4Bfn6ggYsq8khN8nsdzlkbynKpbu2jo2/I61CMeQdL+mZO++ErNQRHlEuXzl4fO5EYvUnLOl8z8caSvpmzBoZD/HBXLVevXkhBZuyGQjwX54+ezLV2fRNnLOmbOWvbvgbaeof49NZKr0N5l+zUJJYVZlh3DCbuWNI3c9a/v1rLyoWZXBJnTTujNpTmsq+u04ZPNHHFulY2cS+82+RRZ7oG2F/XwQfPWzTr3SdHakNZLv+x9xSNnQMszo39GL3GRMJq+mZOer22HZ/AxvI8r0OZ0Hq3Xd8u3TTxxJK+mXNCI8q+2g5WLcwiMyV+f6yuKc4myS/W+ZqJK5b0zZzzVlM33YNBLqqI31o+QGqSn9WLsq2mb+JK/FaTjJnA6zXtpCf7WenByFhTGXv+IS3Zz2s17fzwlZqz3T3fuqXci9CMAaymb+aYgeEQh093s7Es1/PeNCNRmpvGYHCEth67M9fEh/j/1BgT5tiZbkIjyvkejYw1XSV5zlU79R19HkdijMOSvplTDjV2kZHspyw/3etQIlKUlUqSX6hv7/c6FGMAS/pmDgmOjHD0dDdrirM9Gw5xuvw+YXFOmiV9EzciSvoicq2IHBWRKhH5wjjrU0TkMXf9LhGpHLO+XER6ROTPohO2SUQnm3sZDI6wpjjb61CmpTQvjcbOfkIjdmeu8d6USV9E/MC3geuAtcAtIrJ2TLHbgXZVXQ7cC9wzZv29wH/PPFyTyA41dpHkF5YXZXodyrSU5KUxHFKauge8DsWYiGr6m4EqVT2hqkPAo8ANY8rcAPzAnX4CuFrE+f0tIh8FTgAHoxOySUQjqhxu7GLlwqy4GB1rOkpznfMPp6yJx8SBSD49JUB45yb17rJxy6hqEOgECkQkA/g88NeT7UBE7hCRPSKyp7m5OdLYTQJp6OinayA455p2APIzk0lN8lm7vokLkST98c6YjW2cnKjMXwP3qmrPZDtQ1ftUdZOqbiosLIwgJJNojp3pRoBVC+Pvhqyp+EQoyU3jVIclfeO9SO7IrQfKwuZLgYYJytSLSADIAdqALcCNIvJ1IBcYEZEBVf3WjCM3CeV4cy/FOalkxHFfO5MpyU3npaoWgqERr0MxCS6ST9BuYIWILAFOATcDt44psw24DdgJ3Ag8q04n4u8bLSAiXwF6LOGb6RoOjVDX1sd74rTf/EiU5qURUqWx007mGm9NmfRVNSgidwJPAn7gAVU9KCJ3A3tUdRtwP/CwiFTh1PBvjmXQJrHUtvURHFGWFmZ4Hco5K3XvzLUmHuO1iH4rq+p2YPuYZXeFTQ8AN03xGF85h/iM4URzDz6ByoK5m/Rz0pLISAnYyVzjubl17ZtJSMebeynJTSM1ye91KOdMRCjNTaO+3frgMd6ypG/iWu9gkPr2PpYWzq0bssZTkpdGc/cgvYNBr0MxCcySvolru6vbGFHmdHv+qNK8NBQ42NDldSgmgVnSN3Ft54lW/CJU5M/9pF/iDo5uI2kZL1nSN3Ft14k2yvLTSA7M/UM1KzWJnLQk9tfbmLnGO3P/k2TmrYHhEAcbOimfB7X8UaV5aVbTN56ypG/i1qHGLoZDSnl+mtehRE1pbho1rX109g17HYpJUJb0TdzaW+vUiEvnyChZkSjJc57LgVNW2zfesKRv4tbe2nZKctPITk3yOpSoeftkrrXrG29Y0jdxa19dBxvLc70OI6rSkv0sWZDB/jqr6RtvWNI3campe4D69n4uKJtfSR9gfWkOb5yymr7xhiV9E5f2ue35F8yzmj7A+tJcGjsHbPhE4wlL+iYu7avrIOAT1i3O8TqUqFtf6jynA3VW2zezz5K+iUt7aztYuzh7TneyNpF1i7PxCRywJh7jAUv6Ju6ERpQD9R3zsj0fID05wMqFWXaTlvGEJX0Td95q6qZ3KMSGeZr0wWniOVDfiTPAnDGzZ24OOGrmjR/tqn3Xstdr2gGobe0bd/18sL40l8f31FPf3k/ZPLr5zMQ/q+mbuNPQ2U+SX1iQleJ1KDEzejLXLt00s82Svok7DR39FOek4RPxOpSYWb0om2S/j/3Wrm9mmSV9E1dGVGnoHGBxbqrXocRUcsDHmuIsu2zTzDpL+iautPUOMRQcYXHO/OlZcyLrS3N541QnoRE7mWtmjyV9E1caOvoBWJw7/5P+xrJcegaDHG/u8ToUk0As6Zu40tDRj1+Eouz5exJ31Ghncvus8zUziyzpm7jS0DnAwpwUAr75f2guKcggKzVgSd/MKrtO38QNVaWho5+1xdlehxJT4fceLMxO5bkjTe+6H+HWLeWzHZZJEBFVp0TkWhE5KiJVIvKFcdaniMhj7vpdIlLpLt8sIvvcv/0i8rHohm/mk87+YfqGQgnRnj+qLC+NM10DDAVHvA7FJIgpk76I+IFvA9cBa4FbRGTtmGK3A+2quhy4F7jHXf4msElVNwLXAt8TEft1YcbV0OF0NZxISb80L50RffsEtjGxFklNfzNQpaonVHUIeBS4YUyZG4AfuNNPAFeLiKhqn6oG3eWpgF2bZibU0NmPAIuy5/c1+uFGu2Coa+/zOBKTKCJJ+iVAXdh8vbts3DJuku8ECgBEZIuIHATeAD4T9iVgzDs0dvSzICuF5MD8P4k7KjMlQF56EnXtVtM3syOST9d498KPrbFPWEZVd6nqOuBi4Isi8q5qnIjcISJ7RGRPc3NzBCGZ+aixa4DinMSp5Y8qzUunvs1q+mZ2RJL064GysPlSoGGiMm6bfQ7QFl5AVQ8DvcB5Y3egqvep6iZV3VRYWBh59Gbe6B8K0dE3THECNe2MKstLo6N/mO6BYa9DMQkgkqS/G1ghIktEJBm4Gdg2psw24DZ3+kbgWVVVd5sAgIhUAKuA6qhEbuaV013OSdxFCdD9wlhn2/Wttm9mwZRJ322DvxN4EjgMPK6qB0XkbhH5iFvsfqBARKqAzwGjl3VuBfaLyD7gp8Dvq2pLtJ+EmfsaO5027URs3lmcm4ZfhFpL+mYWRHT5pKpuB7aPWXZX2PQAcNM42z0MPDzDGE0CON05QHqyn6zUxLuiN8nvY3FuKjWW9M0sSJzLJExca+x0TuLKPO5DfzIVBRmcau8nOGI3aZnYsqRvPBcaUc50DVCcgO35o8rz0wmOKI3uDWrGxIolfeO51p5BgiPKogRszx9V7p7MtSYeE2uW9I3nGt0rdxLxJO6o7LQk8tKTqG3t9ToUM89Z0jeeO905gF+Ewnk8EHokyvPTqW3rQ9V6KzGxY0nfeK6xs5/CrMToQ38y5QUZdA0E6ei3m7RM7CT2p8zEhdOdidn9wlgVbrt+bau165vYsaRvPNU7GKRrIJjQJ3FHLcxOJdnvo6bN2vVN7FjSN55q7Bw9iZu4l2uO8vuE8oJ0qluspm9ix5K+8dRpt/sFq+k7li7I4HTXAK09g16HYuYpS/rGU42dA2SlBshMSbzuF8azdEEGAK+ebJuipDHnxpK+8dTproGEGilrKiV56ST7few80ep1KGaesqRvPDMUHKGpa9Cu3Anj9wkVBem8YknfxIglfeOZEy09hFQTsg/9ySwtzOTYmR5arF3fxIAlfeOZw41dQGJ3vzCe0Xb9XSesXd9EnyV945nDjd0EfMKCzMTufmGsxblpZCT72XnCxhsy0WdJ33jmcGMXRdkp+H2J2Yf+RPw+4eIl+bxiNX0TA5b0jWcON3ZRnG3t+eO5dFkBVU09Z4eRNCZaLOkbTzR1D9DSM2Q3ZU3gilVFADx3pNnjSMx8Y0nfeOJwYzdgJ3EnsqIok9K8NJ490uR1KGaesaRvPHGwoROwPncmIiJctbqIl6paGBgOeR2OmUcs6RtPHGzoojQvjbRkv9ehxK2rVhfRPxyyG7VMVFnSN5441NDFeYtzvA4jrr1naQFpSX5r4jFRZUnfzLrugWFOtvSybnG216HEtdQkP+9dXsCzR5psCEUTNZb0zawbPYm7rsSS/lSuWr2Q+vZ+qpp6vA7FzBMRJX0RuVZEjopIlYh8YZz1KSLymLt+l4hUusvfLyKvicgb7v+rohu+mYtGT+Ja887UrlrtXLr55MHTHkdi5ospk76I+IFvA9cBa4FbRGTtmGK3A+2quhy4F7jHXd4CfFhVzwduAx6OVuBm7jrY0MWCzBSKrEvlKS3KSeXiyjz+c1+DNfGYqIikpr8ZqFLVE6o6BDwK3DCmzA3AD9zpJ4CrRURUda+qNrjLDwKpImIdrSS4N091Wnv+NHz0ghKqmno42NDldShmHogk6ZcAdWHz9e6yccuoahDoBArGlPlNYK+qWn+xCWwwGKKqqYfzrD0/Yh86v5gkv/Czfae8DsXMA5Ek/fF6wxr7O3PSMiKyDqfJ53fH3YHIHSKyR0T2NDfbbefz2bHTPQRHlHXWnh+x3PRkrlhVxM/2NRAasSYeMzORJP16oCxsvhRomKiMiASAHKDNnS8Ffgp8UlWPj7cDVb1PVTep6qbCwsLpPQMzp7zpnsS15p3p+dgFJTR1D7LzuN2oZWYmkqS/G1ghIktEJBm4Gdg2psw2nBO1ADcCz6qqikgu8F/AF1X1pWgFbeaugw2dZKUGKM9P9zqUOeWq1UVkpQT46V5r4jEzM2XSd9vo7wSeBA4Dj6vqQRG5W0Q+4ha7HygQkSrgc8DoZZ13AsuBL4vIPvevKOrPwswZb57qYm1xNiLWh/50pCb5+dD6Yra/0UhH35DX4Zg5LKLr9FV1u6quVNVlqvo1d9ldqrrNnR5Q1ZtUdbmqblbVE+7yr6pqhqpuDPuze8oT1FBwhEONXWwoy/U6lDnptksr6R8O8ejuuqkLGzMBuyPXzJqjp7sZCo6wodSS/rlYU5zNJUsLeOjlaoKhEa/DMXOUJX0za/bVdwCwocyu3DlXv/PeSho6B/jVoTNeh2LmKEv6Ztbsr+tgQWYyJbnWh/65unrNQsrz03ngxZNeh2LmKEv6Ztbsr+tgQ2muncSdAb9PuO3SSvbUtLO3tt3rcMwcZEnfzIrugWGqmnvsJG4UfPziMvLSk/jm0295HYqZgyzpm1nxxqlOVGF9qbXnz1RmSoDfvXwZzx9r5rWaNq/DMXOMJX0zK/bXOXfi2pU70fHJSyooyEjm3qestm+mJ+B1ACYxHKjvoKIgnbyMZK9DmRN+tKt20vW3binn965Yxlf/6zCvnmxj85L8WYrMzHVW0zezYvQkromeT2ypoDArhW88edT62jcRs5q+ibmmrgEaOgfsJG4Ujf4SuGRpAdv2N3DXzw6ypvidndjduqXci9BMnLOavom512qcSwsvKLekH20XV+ZTkJHMkwdPM2K1fRMBS/om5l6tbiM1yWdj4saA3yf8xrpFNHUP8nqNXbdvpmZJ38Tcnup2Npblkhywwy0WzlucTWleGk8fPsOw9cljpmCfQhNTPYNBDjZ0srnSri6JFRHh2vMW0TUQ5GUbZMVMwZK+iam9te2MKGyypB9TSxdksmphFs8fa6JvKOh1OCaO2dU7Jqa+/1I1AlQ19VDf3u91OPPaB85bxD8/8xY7jjbzwfOLvQ7HxCmr6ZuYqm7ppTg3ldQkv9ehzHuLslO5oDyPnSdaabfRtcwELOmbmBkOjVDX3kdFQYbXoSSMa9YUIcDT1t++mYAlfRMzBxu6GA4plZb0Z01uejKXLCtgX10Hhxu7vA7HxCFL+iZmdp90eoCsLEj3OJLEcsXKIlKSfNzzyyNeh2LikCV9EzMvH29hQWYyWalJXoeSUNKS/VyxsogdR5t5+XiL1+GYOGNJ38TEUHCEXSfbWF6U6XUoCemSZQUszknlnl9aZ2zmneySTRMTe2vb6RsKsbzQkr4Xkvw+tiwp4Kf7TvGVbYdYtShr3HLWKVvisZq+iYkXq1rw+4SllvQ9c0FFLrlpSTx75IzV9s1ZlvRNTLzwVgsbSnPs+nwPBXw+Ll9VSF17P1VNPV6HY+KEJX0TdZ19wxyo72DrikKvQ0l4F1XkkZOWxDNHmqy2b4AIk76IXCsiR0WkSkS+MM76FBF5zF2/S0Qq3eUFIvKciPSIyLeiG7qJVztPtDCisHX5Aq9DSXgBn4/LVxZS29bH8eZer8MxcWDKpC8ifuDbwHXAWuAWEVk7ptjtQLuqLgfuBe5xlw8AXwb+LGoRm7j3wlstZCT7bdCUOLHpbG3f2vZNZDX9zUCVqp5Q1SHgUeCGMWVuAH7gTj8BXC0ioqq9qvoiTvI3CeLFqhbes7SAJL+1HsaDgN/HZSsLqWnt40SL1fYTXSSfyhKgLmy+3l02bhlVDQKdQEGkQYjIHSKyR0T2NDc3R7qZiUNVTT3UtPZx+Sprz48nmyryyE4N8MzhJq9DMR6LJOnLOMvG/kaMpMyEVPU+Vd2kqpsKCy1ZzGVPuR19XbNmoceRmHBJbm2/urWXE812JU8iiyTp1wNlYfOlQMNEZUQkAOQAbdEI0MwtTx06zXkl2SzOTfM6FDPGxZX5ZKUGeOaI1fYTWSRJfzewQkSWiEgycDOwbUyZbcBt7vSNwLNqZ4wSTnP3IHvrOnj/mkVeh2LGkeT3cdmKQk629HLS2vYT1pRJ322jvxN4EjgMPK6qB0XkbhH5iFvsfqBARKqAzwFnL+sUkWrgH4FPiUj9OFf+mHnimcNnUIXfWGdNO/Hq4sp8MlICPHfUavuJKqK+d1R1O7B9zLK7wqYHgJsm2LZyBvGZOPajXbXvmH9oZzV56Um8XtPO3toOb4Iyk0oO+Hjf8gX88uBpatv6vA7HeMCuqTNRMRQcoaqphzXF2YiMd17fxIstS/NJT/bz7BEbXSsRWdI3UXHsTDfBEWVNcbbXoZgppAT8bF2+gGNneni9tt3rcMwss6RvomJ/fQeZKQEbGnGOuGRZARkpAf7hV0e9DsXMMkv6Zsb6h0IcOd3NhtIc/D5r2pkLUgJ+rlhZyEtVrTa6VoKxpG9m7M1TnYRGlI1leV6HYqZh85J8FmWn8o0nbXStRGJJ38zY3roOCjNTWJyb6nUoZhqS/D7+4OrlvF7bYd0zJBBL+mZG2vuGqG7tZWN5rl21Mwf9z01lLF2Qwd9uP8xQcMTrcMwssKRvZmR/nXM9/oZS60Z5Lkry+/jy9Ws50dLLQzurvQ7HzAJL+uacjajyWk07FQXp5Gckex2OOUdXri7iilWF/NPTb9HSM+h1OCbGLOmbc1bV1ENr7xBblkTci7aJU1/60Fr6h0P831/aJZzznSV9c852Hm8lMyXAeSV2Q9Zct7wok9u3LuGxPXW88JaNaTGfWdI356S6pZdjZ7rZvCSfgM8Oo/ngT96/kmWFGfzFEwfoGhj2OhwTI/ZpNefk4VdqEIHNlfleh2KiJDXJzzdu2sCZrgH+5ueHvA7HxIglfTNtvYNBHt9Tx7rFOWSnJXkdjomiC8rz+L0rlvHj1+r52b5TXodjYsCSvpm27790ku6BIFuXL/A6FBMDf3T1SjYvyecvnjhw9pJcM39Y0jfT0tk3zPd+fYJr1hRRlp/udTgmBpIDPr7ziQspzErhjof3cKZrwOuQTBRZ0jfTct8Lx+keCPK596/yOhQTQwWZKfzrJzfRPRDkt/5tF03dlvjnC0v6JmLN3YM88GI1H96wmLWL7TLN+W5NcTb333Yxpzr6ufl7r9DY2e+90uyaAAATTklEQVR1SCYKLOmbiP3Dr44yFBrhT65Z4XUoZpZcsqyAhz69mabuQW78zk7eqO/0OiQzQ5b0TUSeP9bMo7vruH3rEpYWZnodjplFmyrz+dH/3oKq8pvfeZkHXzppXTHPYRJvb96mTZt0z549XofxLmMHAR/PrVvKZyGS2dfZP8wH7v01makBfvEHW0lN8gORvSZm/ugbDPLj1+o5eqabioJ0PnR+MaV56fP2uJ9rROQ1Vd00VTmr6ZtJqSp3//wQzT2D/MNNG84mfJN40lMC/PYlFXx0Ywkt3YP8y47j/GhXDa+caLWa/xwS8DoAE9++9WwVP3m9nj+8ajkbyqz75ETnE2HzknzWl+bw/LFmdp1s5eb7XqEwM4V1JdmsXpRNaV4avjFjK9ivgfhhSd9M6OGd1fzDU8f4HxeU8MfXrPQ6HBNHUpP8fGDdIq5cVcQbpzp4vbaDXx9rZsfRZpIDPkpy0yjPT6csL41Su58jrljSH0NVOd7cy4tvNXOipZfatj46+4dp7x0iye+jIDOFhdkplOWlsygn9V01mvkgNKJ89/njfONXR7lmzULuuXE9Phvw3IwjOeDjoop8LqrIp38oxLGmbmpa+6hr6+OFt5oZcVt97n/xJGuKs1mzKIs1xdmsLs6iIj+DtGRrLpxtESV9EbkW+CfAD/ybqv79mPUpwEPARUAr8HFVrXbXfRG4HQgBf6iqT0Yt+ijpGQzyclULO4418/zRZk51ONcjZ6UGqChIJy89mY6+YfqGQtTUtp8dVi4j2c+yokxWFGWyvCjLy6cQNY2d/fzp4/t5+Xgr168v5hs3bSDJb6d+zNTSkv1sKM09O4racGiEho5+6tr7SUvyc7ixi+8fb2Uo9PawjEVZKVQWZFBekE5JbhoFmcnkpSdTkJFMXkYy+RnJ5KYnkRKwL4domTLpi4gf+DbwfqAe2C0i21Q1vBu+24F2VV0uIjcD9wAfF5G1wM3AOmAx8LSIrFTVULSfyHQMh0Z481Qnu0628fzRZvbUtDEcUjKS/Vy6fAG/f+UyLltR+I5uBkavVFFVOvqGOdnaS1VTD1VNPRxwr13+yev1bF2+gPetWMCWpQVkpsyNH1KqyrEzPTzw4kl+uvcUfp/w9RvXc9NFpTburTlnSX4fFQUZVBRknG3THw6NcKK5l6Nnuqlp6aWmrY/aVudXwZmuiUftSk/2k5fufAGM/i/ISGZhTiqLsp2/0emMOfK580okr85moEpVTwCIyKPADUB40r8B+Io7/QTwLXGyxQ3Ao6o6CJwUkSr38XZGJ/x3GhlR+odD9A2F6B8K0T8contgmNNdA5zuHOB4s9MH/KGGLvqHne+d1Yuy+PTWJVyxsoiLKvJIDkxeqxUR8txayIXleagqp7sGqGrqoXcoxCOv1vLgy9UEfMLGslxWLcpiyYIMinPSyElLIjc9iZy0JHLSk0j2+/D7BL9ITJtPgqER+oad16R3MEjfUIjTnQPUtvVxqLGLncdbOdXRT0rAx/+8uJQ73reM8gJrhzXRM97lvQWZKRRkpnBheR7gNCv2DTnHZ+9gkN6h0Nn5Pve47RsKUdPay+HGEL1DQQaG3z2Ye1ZK4OwXwMLsVBblpLAoO5W8jGQCPh9JfiHg95HkE4LuPnsHQ/QNO/vZeaKVgeERBoedHDIwPMJgMMTAcIjQiJKVmoTfJwR8gt8npCf7yUwNkJWS5PxPDZCVEiAr9e35THc+K2w+LcmPTwQRZrVyFUnSLwHqwubrgS0TlVHVoIh0AgXu8lfGbFtyztFOYm9tOx/7l5cnLZObnsTKoiw+fnEZF1fmc/GSPIqyUme0XxGhOCeN4pw0bt1SzsBwiNdq2nnhrRZePdnKLw400tkf2YAUb38BgOAcBIrTKDp6RdzZC+POzo+/PvwSupFJrqbLS0/iPUsL+N3Ll3L9+sU21q3xjN8nbmKMvLvuwWCI7v4gnQPDdPUPs7QwkzNuJe901wDHj7fQ1D1IaLIPwRiCc6I6Ncnn/veTm5ZEanYqPp9QWZBBaGSEkLoVqiGnctncPUjPQJDugSA9Q0GmcxWriHNl1IfOL+b/3XJB5Bueg0iS/nhfQWOfzkRlItkWEbkDuMOd7RGRmAzUWQPsP/fNFwAtkxX4xLk/9kxNGdtEaoB9wHejGs5Z5xzXLLDYpi9e44J5Ets/A/986znvpyKSQpEk/XqgLGy+FGiYoEy9iASAHKAtwm1R1fuA+yIJ2CsisieSu928EK+xxWtcYLGdi3iNCyy26YjksozdwAoRWSIiyTgnZreNKbMNuM2dvhF4Vp32hW3AzSKSIiJLgBXAq9EJ3RhjzHRNWdN32+jvBJ7EuWTzAVU9KCJ3A3tUdRtwP/Cwe6K2DeeLAbfc4zgnfYPAZ72+cscYYxJZRNc2qep2YPuYZXeFTQ8AN02w7deAr80gxngRz81P8RpbvMYFFtu5iNe4wGKLWNz1smmMMSZ27FZLY4xJIJb0pyAi14rIURGpEpEveBzLAyLSJCJvhi3LF5GnROQt93+eR7GVichzInJYRA6KyB/FQ3wikioir4rIfjeuv3aXLxGRXW5cj7kXKXhCRPwisldEfhFPsYlItYi8ISL7RGSPu8zz401EckXkCRE54h5vl8RJXKvc12r0r0tE/jgeYgtnSX8SYV1QXAesBW5xu5bwyoPAtWOWfQF4RlVXAM+4814IAn+qqmuA9wCfdV8rr+MbBK5S1Q3ARuBaEXkPTlch97pxteN0JeKVPwIOh83HU2xXqurGsEsOvX4/wekH7JequhrYgPPaeR6Xqh51X6uNOP2Q9QE/jYfY3kFV7W+CP+AS4Mmw+S8CX/Q4pkrgzbD5o0CxO10MHPX6dXNj+RlOf01xEx+QDryOc0d5CxAY732e5ZhKcRLBVcAvcG5ojJfYqoEFY5Z5+n4C2cBJ3POR8RLXOHH+BvBSPMZmNf3JjdcFRUy6kZiBharaCOD+L/I4HkSkErgA2EUcxOc2n+wDmoCngONAh6oG3SJevq/fBP4CGO1EpoD4iU2BX4nIa+5d8+D9+7kUaAa+7zaJ/ZuIZMRBXGPdDDziTsdVbJb0JxdRNxLmbSKSCfwE+GNV7fI6HgBVDanzk7sUp8O/NeMVm92oQESuB5pU9bXwxeMU9eqYe6+qXojTvPlZEbnMozjCBYALge+o6gVAL143l4zhnoP5CPBjr2MZjyX9yUXUjYTHzohIMYD7v8mrQEQkCSfh/7uq/ke8xaeqHcAOnHMOuW6XIeDd+/pe4CMiUg08itPE8804iQ1VbXD/N+G0TW/G+/ezHqhX1V3u/BM4XwJexxXuOuB1VT3jzsdTbJb0pxBJFxReC+8C4zactvRZJyKCc2f2YVX9x7BVnsYnIoUikutOpwHX4Jz4ew6nyxBP4gJQ1S+qaqmqVuIcW8+q6ifiITYRyRCRrNFpnDbqN/H4/VTV00CdiKxyF12Nc8d/XHwOXLfwdtMOxFdsdiJ3qj/gg8AxnHbgv/Q4lkeARmAYp8ZzO04b8DPAW+7/fI9i24rTDHEAp+POfe5r52l8wHpgrxvXm8Bd7vKlOP1AVeH8DE/x+L29AvhFvMTmxrDf/Ts4eux7/X66MWwE9rjv6X8CefEQlxtbOs7ogTlhy+IittE/uyPXGGMSiDXvGGNMArGkb4wxCcSSvjHGJBBL+sYYk0As6RtjTAKxpD+HiIiKyHJ3+rsi8mWvYwonIg+KyFc92O/HRKRORHpE5ILZ3v985L6WS89x27PH6TjrdojI/5pZdGYmIho5y0yPe4flYmCxqraELd+H0yvgElWtnsk+VPUzM9l+nvkGcKeqenvTyzyiqplex2Biw2r6sXMS5848AETkfCDNu3DmtQqcG4jiXlj3CsZ4wpJ+7DwMfDJs/jbgofACIpIiIt8QkVoROeM22aSFrf9zEWkUkQYR+fSYbc82pYhInoj8QkSaRaTdnS4NK7tDRP5GRF4SkW4R+ZWILBgvaHdQiuvD5gMi0iIiF7rzPxaR0yLSKSK/FpF1EzzOp0TkxTHLwpunJn3uY7bziciXRKRGnEFkHhKRHPcxegA/sF9Ejk+w/aUistuNebeIXOouv1JE3ggr97SIvBo2/6KIfNSdrhaRPxORA+7jPCYiqWFlrxdn4IwOEXlZRNaHrasWkc+LyAGgd7zE7z6Xb7rvdYM7nRK2/gZ5e2CO4yJyrbs8X0S+727TLiL/GeHr/6D7mj/lHhPPi0jFubxXkx2nE6iY6FgUkY+IM9hNh3vcrglbV+3u64CI9IrI/SKyUET+232spyVsgBIReY/7XnSIM4jOFWHrPiUiJ9ztTorIJyKIe37w8nbg+fqH0w/5NTj9aK/BSUp1ODVSBSrdct/E6ZcjH8gCfg78nbvuWuAMcB6QAfzI3Xa5u/5B4Ktht3n/Js4t4Fk4t+7/Z1g8O3C6kViJ82tjB/D3E8R+F06HaaPzHwKOhM1/2t1Hihv/vrB14TF9CnhxzGOHxz/hcx8npk/jdEmwFMgE/gN4eLzHHWfbfJyBSH4bpznzFne+AEgF+oEF7rrTOJ2bZbmvUz9QEPaevorTbJeP03/PZ9x1F+J0orXFfa9vc8unhG27D6fzvrQJ4rwbeAWn291C4GXgb9x1m4FOnPEJfDhdLa921/0X8BhOVwRJwOURvv4PAt3AZe57+U/h5SN9r5jiOB3nee5ggmPRXdbrPs8knC6nq4DksNfxFWCh+xo04YyPcIH7HJ4F/sotW4LTHcIH3dfs/e58oRtnF7DKLVsMrPM6b8xafvI6gPn4x9tJ/0vA37kfjKdwEoviDIQi7gG+LGy7S4CT7vQDhCVm9wMxbtIfZ/8bgfaw+R3Al8Lmfx9n5KHxtl3uJoN0d/7fcfurGadsrhtTztiYmCTpTPXcx9nPM8Dvh82vwul/KBD+uBNs+9vAq2OW7QQ+5U6/APwPnJ43fwU87r5fVwIHxrynvxU2/3Xgu+70d3ATdNj6o7ydgKuBT09xzBwHPhg2/wGg2p3+Hs5IWmO3Kcbphz9vnHUTvv5h79WjYesygRBQNp33aqrjdJy4JjwWgS8Dj4et8wGngCvCXsdPhK3/CU4Xy6Pzf4Bb2QE+T1jFwF32JM4XcgbQgVNRGvdLeD7/WftibD0M/BpYwpimHZwaRzrwmsjZLtQFp6YITo0yvJ/1mol2IiLpwL04yWr0522WiPhVNeTOnw7bpA/nQ/4uqlolIoeBD4vIz3H6Bb/A3Y8f+Bpwkxv/6MAfC3BqopGa6rmPtZh3Pv8anC/QhThJYTJjtx3dfnRgkudxOjurd6fbgctxhll8fsx2Y1/Dxe50BXCbiPxB2PrksPUQNhiP25TwPXf2BVW9bpw4a8K2LwO2j/PcyoA2VW0fZ10kzsakqj0i0ubuM3zgoKgdp2EmOhbf8Rqo6oiI1PHOQWTOhE33jzM/+lgVwE0i8uGw9UnAc6raKyIfB/4MuF9EXsIZ6vNIBLHPedamH0OqWoNzQveDOE0S4VpwDtJ1qprr/uXo21dNNPLOvvzLJ9nVn+LUfreoajbOT3YYf0COSDyC0wxyA3BIVavc5be6y64BcnB+sUy0n16cZOEUEFkUtm6q5z5WA86HeFQ5zpi8Z8YvPum2o9uPflmMJv3L3OnncZL+5bw76U+kDvha2HPJVdV0VQ3vXvdsz4aq+u+qmun+XTdBnOW83Y9+HbBsgv3mi9t19BiTvf6jysLWZ+I034ztuz+ax+lU3vEaiPMtU8bUX+zjqcOp6Ye/Jxmq+vcAqvqkqr4f59fSEeBfZxD3nGJJP/ZuxxmYuzd8oaqO4Bxo94pIEYCIlIjIB9wijwOfEpG1bk3+rybZRxbOB7NDRPKnKBuJR3H6T/89nDba8P0M4rSNpgN/O8lj7AfWichG94TnV0ZXRPDcx3oE+BNxxjXIdPf7mL49pOBktgMrReRWcU5KfxxnkPtfuOtfxvnC3IzTDHQQJ/FswfmVFol/BT4jIlvEkSEiHxK3P/oIPQJ8SZz+/xfgnFv5obvufuB3RORqcU5ql4jIanWG3vtv4F/EOZmfJG+PbjXh6x/mgyKyVZyxIv4G2KWq4bX8aB+nU3kc+JD7PJNwKjODOO/RdP0Q59fqB8QZLjNVRK4QkVL35O9HxBknYBDowWnaSgiW9GNMVY+r6p4JVn8e50TVKyLSBTyNk4BQ1f/GOYH2rFvm2Ul2802ck2ItOCe6fjnDmBtx2r0vxTlJOOohnJ/fp3AGrnhlksc4hnNy8mmcfsRfHFNkwuc+jgd4u6nsJDCA034byXNpBa7HSSCtOCcHr1f3/gn3y/h14KCqDrmb7QRq1BkxKpJ97AH+N/AtnOahKpw29en4Km/3Ef+GG9NX3cd/FfgdnCa8TpxfIKM14t/GOb9xBOfE5h+720z1+oPzhf5XQBtwETDRFSzROk4npapHgd8C/hnnWP4w8OGw92U6j1WH86v0/+CMqVsH/DlOzvPhHA8NOM/9cpxzCwnB+tM3JgGJyIM4ww5+yetYzOyymr4xxiQQS/rGGJNArHnHGGMSiNX0jTEmgVjSN8aYBGJJ3xhjEoglfWOMSSCW9I0xJoFY0jfGmATy/wHzgR86MKX/GgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x112d5ffd0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = pyplot.figure()\n",
    "sns.distplot(train.BMI.values, bins=30, kde=True)\n",
    "pyplot.xlabel('Median value of owner-occupied homes', fontsize=12)\n",
    "pyplot.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Int64Index: 724 entries, 0 to 767\n",
      "Data columns (total 9 columns):\n",
      "Pregnancies                 724 non-null int64\n",
      "Glucose                     724 non-null int64\n",
      "BloodPressure               724 non-null int64\n",
      "SkinThickness               724 non-null float64\n",
      "Insulin                     724 non-null int64\n",
      "BMI                         724 non-null float64\n",
      "DiabetesPedigreeFunction    724 non-null float64\n",
      "Age                         724 non-null int64\n",
      "Outcome                     724 non-null int64\n",
      "dtypes: float64(3), int64(6)\n",
      "memory usage: 56.6 KB\n"
     ]
    }
   ],
   "source": [
    "train = train[train.BMI != 0]\n",
    "train.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "y = train['Outcome'].values\n",
    "X = train.drop('Outcome', axis = 1)\n",
    "\n",
    "columns = X.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(579, 8)"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=33, test_size=0.2)\n",
    "X_train.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "对X进行标准化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.preprocessing import StandardScaler\n",
    "\n",
    "ss_X = StandardScaler()\n",
    "\n",
    "X_train = ss_X.fit_transform(X_train)\n",
    "X_test = ss_X.transform(X_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "先使用基础的逻辑回归来解，使用默认交叉验证计算，计算logloss"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Classification report for classifier LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n",
      "          intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,\n",
      "          penalty='l2', random_state=None, solver='liblinear', tol=0.0001,\n",
      "          verbose=0, warm_start=False):\n",
      "             precision    recall  f1-score   support\n",
      "\n",
      "          0       0.75      0.87      0.81        93\n",
      "          1       0.68      0.48      0.56        52\n",
      "\n",
      "avg / total       0.72      0.73      0.72       145\n",
      "\n",
      "\n",
      "Confusion matrix:\n",
      "[[81 12]\n",
      " [27 25]]\n"
     ]
    }
   ],
   "source": [
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn import metrics\n",
    "lr = LogisticRegression()\n",
    "\n",
    "lr.fit(X_train, y_train)\n",
    "y_predict = lr.predict(X_test)\n",
    "\n",
    "print(\"Classification report for classifier %s:\\n%s\\n\"\n",
    "      % (lr, metrics.classification_report(y_test, y_predict)))\n",
    "print(\"Confusion matrix:\\n%s\" % metrics.confusion_matrix(y_test, y_predict))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "由于区分测试集训练集，需要手工实现交叉验证，选择l1/l2及正则参数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [],
   "source": [
    "penaltys = ['l1','l2']\n",
    "Cs = [0.001, 0.01, 0.1, 1, 10, 100, 1000]\n",
    "\n",
    "def fit_grid_point_lr(penalty, C, X_train, y_train, X_test, y_test):\n",
    "    lr =  LogisticRegression(penalty = penalty, C = C)\n",
    "    lr = lr.fit(X_train, y_train)\n",
    "    \n",
    "    lr.fit(X_train, y_train)\n",
    "    y_predict = lr.predict(X_test)\n",
    "    \n",
    "    accuracy = metrics.accuracy_score(y_test, y_predict)\n",
    "    print(\"accuracy: {}\".format(accuracy))\n",
    "    return accuracy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "accuracy: 0.641379310345\n",
      "accuracy: 0.696551724138\n",
      "accuracy: 0.737931034483\n",
      "accuracy: 0.731034482759\n",
      "accuracy: 0.731034482759\n",
      "accuracy: 0.731034482759\n",
      "accuracy: 0.731034482759\n",
      "accuracy: 0.703448275862\n",
      "accuracy: 0.731034482759\n",
      "accuracy: 0.731034482759\n",
      "accuracy: 0.731034482759\n",
      "accuracy: 0.731034482759\n",
      "accuracy: 0.731034482759\n",
      "accuracy: 0.731034482759\n",
      "best is l1 in 0.1\n"
     ]
    }
   ],
   "source": [
    "max_accuracy = 0.0\n",
    "best_C = 0\n",
    "best_penaltys = 0\n",
    "for i, onePenaltys in enumerate(penaltys):\n",
    "    for j, oneC in enumerate(Cs):\n",
    "        tmp = fit_grid_point_lr(onePenaltys, oneC, X_train, y_train, X_test, y_test)\n",
    "        if tmp > max_accuracy:\n",
    "            best_C = oneC\n",
    "            best_penaltys = onePenaltys\n",
    "            max_accuracy = tmp\n",
    "print \"best is %s in %s\" % (best_penaltys, best_C)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "接下来使用线性svm来进行测试"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.svm import LinearSVC\n",
    "def fit_grid_point_Linear(C, X_train, y_train, X_test, y_test):\n",
    "    SVC =  LinearSVC(C = C)\n",
    "    SVC = SVC.fit(X_train, y_train)\n",
    "    \n",
    "    y_predict = SVC.predict(X_test)\n",
    "    accuracy = metrics.accuracy_score(y_test, y_predict)\n",
    "    \n",
    "    print(\"accuracy: {}\".format(accuracy))\n",
    "    return accuracy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "accuracy: 0.731034482759\n",
      "accuracy: 0.731034482759\n",
      "accuracy: 0.731034482759\n",
      "accuracy: 0.731034482759\n",
      "accuracy: 0.731034482759\n",
      "accuracy: 0.703448275862\n",
      "accuracy: 0.606896551724\n",
      "best is 0.001\n"
     ]
    }
   ],
   "source": [
    "max_accuracy = 0.0\n",
    "best_C = 0\n",
    "for j, oneC in enumerate(Cs):\n",
    "    tmp = fit_grid_point_Linear(oneC, X_train, y_train, X_test, y_test)\n",
    "    if tmp > max_accuracy:\n",
    "        best_C = oneC\n",
    "        max_accuracy = tmp\n",
    "print \"best is %s\" % (best_C)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "最优值在边界，尝试移动C的取值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [],
   "source": [
    "Cs = np.logspace(-4, 4, 9)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "accuracy: 0.703448275862\n",
      "accuracy: 0.731034482759\n",
      "accuracy: 0.731034482759\n",
      "accuracy: 0.731034482759\n",
      "accuracy: 0.731034482759\n",
      "accuracy: 0.731034482759\n",
      "accuracy: 0.696551724138\n",
      "accuracy: 0.620689655172\n",
      "accuracy: 0.703448275862\n",
      "best is 0.001\n"
     ]
    }
   ],
   "source": [
    "max_accuracy = 0.0\n",
    "best_C = 0\n",
    "for j, oneC in enumerate(Cs):\n",
    "    tmp = fit_grid_point_Linear(oneC, X_train, y_train, X_test, y_test)\n",
    "    if tmp > max_accuracy:\n",
    "        best_C = oneC\n",
    "        max_accuracy = tmp\n",
    "print \"best is %s\" % (best_C)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "线性SVM的最优解的确在0.001"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.svm import SVC\n",
    "def fit_grid_point_RBF(C, gamma, X_train, y_train, X_test, y_test):\n",
    "    SVC_RBF = SVC( C = C, kernel='rbf', gamma = gamma)\n",
    "    SVC_RBF = SVC_RBF.fit(X_train, y_train)\n",
    "    \n",
    "    y_predict = SVC_RBF.predict(X_test)\n",
    "    accuracy = metrics.accuracy_score(y_test, y_predict)\n",
    "    \n",
    "    print(\"accuracy: {}\".format(accuracy))\n",
    "    return accuracy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "accuracy: 0.641379310345\n",
      "accuracy: 0.641379310345\n",
      "accuracy: 0.641379310345\n",
      "accuracy: 0.641379310345\n",
      "accuracy: 0.641379310345\n",
      "accuracy: 0.641379310345\n",
      "accuracy: 0.675862068966\n",
      "accuracy: 0.641379310345\n",
      "accuracy: 0.641379310345\n",
      "accuracy: 0.641379310345\n",
      "accuracy: 0.710344827586\n",
      "accuracy: 0.71724137931\n",
      "accuracy: 0.655172413793\n",
      "accuracy: 0.641379310345\n",
      "accuracy: 0.641379310345\n",
      "accuracy: 0.703448275862\n",
      "accuracy: 0.68275862069\n",
      "accuracy: 0.648275862069\n",
      "accuracy: 0.641379310345\n",
      "accuracy: 0.641379310345\n",
      "accuracy: 0.696551724138\n",
      "accuracy: 0.703448275862\n",
      "accuracy: 0.648275862069\n",
      "accuracy: 0.641379310345\n",
      "accuracy: 0.641379310345\n",
      "best is 0.1 in 1.0\n"
     ]
    }
   ],
   "source": [
    "C_s = np.logspace(-2, 2, 5)\n",
    "gamma_s = np.logspace(-2, 2, 5)\n",
    "\n",
    "max_accuracy = 0.0\n",
    "best_C = 0\n",
    "best_gamma = 0\n",
    "for i, oneC in enumerate(C_s):\n",
    "    for j, oneGamma in enumerate(gamma_s):\n",
    "        tmp = fit_grid_point_RBF(oneC, oneGamma, X_train, y_train, X_test, y_test)\n",
    "        if tmp > max_accuracy:\n",
    "            best_C = oneC\n",
    "            best_gamma = oneGamma\n",
    "            max_accuracy = tmp\n",
    "print \"best is %s in %s\" % (best_gamma, best_C)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.14"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
